#-1-变量使用,打印
#!/usr/local/bin/perl
$value=100+30+3+8;
print("Value=",$value,"\n");

#-2-变量使用,打印
#!/usr/local/bin/perl
$value=1024;
$sentence="The value of \$value is $value.\n";
print($sentence);

#-3-多次打印
#!/usr/local/bin/perl
$name="hello";
print(("Hello,",$name,".\n") x 2);

#-4-数组遍历
#!/usr/local/bin/perl
@array=(1,2,3,5,8,13,21);
$length=@array;
print("The length of array is ",$length,"\n");

print("The items of array are listed below:\n");

$index=0;
while($index<$length){
    print($index,":",$array[$index],"\n");
    $index++;
}

#-5-数组排序和逆序
#!/usr/local/bin/perl
@array=(3,1,8,4,6,9,10);
@arraySorted=sort(@array);
@arrayReversed=reverse(@arraySorted);

$length=0;
$length=@arraySorted;
$index=0;

print("Sorted array is :");
while($index<$length){
    print(@arraySorted[$index].",");
    $index++;
}
print("\n.");

$index=0;
$length=@arrayReversed;
print("The reversed array is :");
while($index<$length){
    print(@arrayReversed[$index],",");
    $index++;
}
print("\n.");

#-6-字符串与数组的转换
#!/usr/local/bin/perl
$msg="Andy,Bill,Cindy,Douglas,Evan";
@array=split(/,/,$msg);

$n=@array;
$i=0;

while($i<$n){
    print(@array[$i],"\n");
    $i++;
}

$msg2=join("-",@array,"Felix");
print($msg2,"\n");
 
#-7-读取文件
#!/usr/local/bin/perl
#Read File
open(File,"1.txt") || die("Can't read the file 1.txt");
while($line=<File>){
   print($line."");
}
close File;
print("The end");

#-8-写覆盖文件
#!/usr/local/bin/perl
#Write File
open(File,">2.txt");
print File "1.Read file\n";
print File "2.Write File\n";
close File;

#-9-写添加文件
#!/usr/blical/bin/perl
open(File,">>3.txt");
print File "Hello,World\n";
print File "HI,you\n";
close File;

#-10-函数返回值调用
#!/usr/local/bin/perl
$op1=3;
$op2=4;

$op3=plus($op1,$op2);
print("Op3=".$op3);

sub plus{
  my($op1,$op2)=@_;
  return $op1+$op2;
}

#-11-通过函数修改数组中的值
#!/usr/local/bin/perl

@array=(1,2,3,4,5);

&addone(*array);
print(join(",",@array));

sub addone{
    local(*array)=@_;

$n=@array;
    $i=0;

while($i<$n){
       @array[$i]+=1;
       $i++;
    }
}

#-12-将数组作为链表使用
#!/usr/local/bin/perl
@array=(1,3,4,5);

do addItemToArray(9,*array);
do addItemToArray(10,*array);

&removeItemFromArray(3,*array);
&removeItemFromArray(0,*array);

print(join(",",@array));

sub addItemToArray{
    local($item,*array)=@_;

$length=@array;
    splice @array,$length,0,$item;
}

sub removeItemFromArray{
    local($index,*array)=@_;

splice @array,$index,1;
}

#-13-取得用户输入
#!/usr/local/bin/perl
print("Please enter some words here:");
$line=<STDIN>;
chomp($line);
print("You inputed words is:".$line."\n");

#-14-连续要求用户输入,直到输入正确为止
#!/usr/bin/local/perl

do{
    print("\nPls input the pswd:");
    $line=<STDIN>;
    chomp($line);

if($line!='1234'){
       print "Wrong!";
    }
}while($line!='1234');

print("Right!");

#-15-连续要求用户输入,直到符合日期模式为止
#!/usr/bin/local/perl
do{
    print("\nPls input the pswd:");
    $line=<STDIN>;
    chomp($line);

if(!isValid($line)){
       print "Invalid";
    }
}while(!&isValid($line));

print("Valid");

sub isValid{
    local($date)=@_;

return $date=~/^\d{8}-\d{8}$/;
}

#-16-模式分离文本得到年月日
#!/usr/local/bin/perl

$line="20120811";

if($line=~/^(\d{4})(\d{2})(\d{2})$/){
    print("Year=".$1."\n");
    print("Month=".$2."\n");
    print("Day=".$3."\n");
}

#-17-管道,获得ls -l的输出当输入
#!/usr/local/bin/perl

open (LOUT,"ls -l | ");
@lines=<LOUT>;
close LOUT;

foreach $line (@lines){
    print "Line_".$line;
}

#-18-获取系统日期并模式分离时间
#!/usr/local/bin/perl
chomp($now=`date`);
print $now;

if($now=~/(\d{2}:\d{2}:\d{2})/){
   print("Time=".$1."\n");
}

#-19-创建哈希表
#!/usr/local/bin/perl

$hash{'1001'}="Andy";
$hash{'1002'}="Bill";
$hash{'1003'}="Cindy";

print $hash{'1002'};
@array=%hash;

print "@array\n";

#-20-哈希表全操作
#!/usr/local/bin/perl

#inintialzie a hash
%hash=("Andy"=>35,"Bill"=>36,"Cindy"=>37,"Doglas"=>38);

$hash{"Felix"}=39;

while( ( $key,$value)=each %hash){
  print "Key=".$key." Value=".$value."\n";
}

@keys=keys %hash;
print (join ",",@keys)."\n";

@values=values %hash;
print (join "-",@values)."\n";

if(exists $hash{"Doglas"}){
    print "\nDoglas's age is".$hash{"Doglas"};
}

delete $hash{"Andy"};
delete $hash{"Green"};

print "\nNow hash=\n";
while( ( $key,$value)=each %hash){
  print "Key=".$key." Value=".$value."\n";
}

#-21-正则表达式搜索,替换,转换
#!usr/local/bin/perl

$msg="UsCnEgJp";

if($msg=~m/[Cc]n/){
  print "Cn was found in msg\n";
}

if($msg=~s/[Cc]n/CHina/){
  print "\$msg=$msg\n";
}

if($msg=~tr/a-z/A-Z/){
  print "\$msg=$msg\n";
}

#-22-字符串常用操作
#!/usr/local/bin/perl

$msg="UsCnJpEg";

$length=length($msg);
print "$msg's length=$length\n";

$pos=index($msg,"Cn");
print "Cn's index=$pos\n";

$substr=substr($msg,$pos,2);
print "\$substr=$substr\n";

$uppercase=uc($msg);
print "\$uppercase=$uppercase\n";

$lowercase=lc($msg);
print "\$lowercase=$lowercase\n";

$sprintf=sprintf("%d_%s_%x",1000,"abc",12);
print "\$sprintf=$sprintf\n";

#-23-找出一万以内的所有质数
#!/usr/local/bin/perl

@array=();

for($i=2;$i<=10000;$i++){
    $flag=0;

for($j=2;$j<sqrt($i);$j++){
        if($i % $j==0){
           $flag=1;
           break;
        }
    }

if($flag==0){
       push(@array,$i);
    }
}

print join(",",@array)."\n";

输出:2,3,4,5,7,9,11,13,17,19,23,25,29,31,37,41,43,47,49,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,121,127,131,137,139,149,151,157,163,167,169,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,289,293,307,311,313,317,331,337,347,349,353,359,361,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,529,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,841,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,961,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1369,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1681,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1849,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2209,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2809,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3481,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3721,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4489,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5041,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5329,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6241,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6889,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919,7921,7927,7933,7937,7949,7951,7963,7993,8009,8011,8017,8039,8053,8059,8069,8081,8087,8089,8093,8101,8111,8117,8123,8147,8161,8167,8171,8179,8191,8209,8219,8221,8231,8233,8237,8243,8263,8269,8273,8287,8291,8293,8297,8311,8317,8329,8353,8363,8369,8377,8387,8389,8419,8423,8429,8431,8443,8447,8461,8467,8501,8513,8521,8527,8537,8539,8543,8563,8573,8581,8597,8599,8609,8623,8627,8629,8641,8647,8663,8669,8677,8681,8689,8693,8699,8707,8713,8719,8731,8737,8741,8747,8753,8761,8779,8783,8803,8807,8819,8821,8831,8837,8839,8849,8861,8863,8867,8887,8893,8923,8929,8933,8941,8951,8963,8969,8971,8999,9001,9007,9011,9013,9029,9041,9043,9049,9059,9067,9091,9103,9109,9127,9133,9137,9151,9157,9161,9173,9181,9187,9199,9203,9209,9221,9227,9239,9241,9257,9277,9281,9283,9293,9311,9319,9323,9337,9341,9343,9349,9371,9377,9391,9397,9403,9409,9413,9419,9421,9431,9433,9437,9439,9461,9463,9467,9473,9479,9491,9497,9511,9521,9533,9539,9547,9551,9587,9601,9613,9619,9623,9629,9631,9643,9649,9661,9677,9679,9689,9697,9719,9721,9733,9739,9743,9749,9767,9769,9781,9787,9791,9803,9811,9817,9829,9833,9839,9851,9857,9859,9871,9883,9887,9901,9907,9923,9929,9931,9941,9949,9967,9973

#-24-生成报表

#!/usr/bin/local/perl
print("<Input data range>\n");
do{
  print("Pls input the date range(Eg:20130601-20130625,q:exit):");
  $line=<STDIN>;
  chomp($line);
}while(!&isValid($line));

if($line eq "q" || $line eq "Q"){
  print "Quited.\n";
  exit;
}

print "<Caculate start date and end date>\n";
if($line=~/^(\d{8})\s*-\s*(\d{8})$/){
  $startDate=$1;
  $endDate=$2;
}else{
  print "Quited because of invalid date range.\n";
  exit;
}

if($startDate gt $endDate){
  print "Quited because $startDate is greater than $endDate\n";
  exit;
}

print "<Generate report from $startDate to $endDate>\n";

sub isValid{
  local($date)=@_;
  return $date=~/^\d{8}\s*-\s*\d{8}$/ || $date eq "Q" || $date eq "q";
}

一些Perl例程(全部手打并执行过)的更多相关文章

  1. Perl爬取江西失信执行

    #! /usr/bin/perl use strict; use Encode qw(encode decode); binmode(STDIN,":encoding(utf8)" ...

  2. 【原创】控制perl和python脚本执行过程中脚本文件是否关闭的方法

    引子 跟踪perl和python脚本对文件的访问,实际过程中,perl和python解析器在解析完脚本后,直接关闭了 脚本文件,在进程中查询不到是访问文件的脚本文件名称. shell.perl和pyt ...

  3. PHP下的命令行执行 php -S localhost -t public

    PHP 的命令行模式     以下是 PHP 二进制文件(即 php.exe 程序)提供的命令行模式的选项参数,您随时可以通过 PHP -h 命令来查询这些参数. Usage: php [option ...

  4. perl基本语法

    标量 标量是 Perl 中最简单的数据类型.大多数的标量是数字(如 255 或 3.25e20)或者字符串(如 hello或者盖茨堡地址). 数字 perl中所有数字内部的格式都是双精度浮点数. 浮点 ...

  5. 【转】FTP自动上传文件的perl脚本以及配置文件

    这个perl文件将执行的任务是, 按照指定的文件夹目录,自动将该文件夹下的所有文件上传到指定ftp站点的指定目录下 本应用程序设计的几个基本理念是:工具箱再利用:尽可能利用已有的工具:简化运行步骤:不 ...

  6. Jenkins 六: 构建中执行shell或者 windows的批处理程序

    Shell/ bat Jenkins 可以在构建中执行shell命令或者windows的batch 命令. 1. 选择一个项目,点击“配置”. 2. 找到“构建” –> “增加构建步骤”.选择 ...

  7. perl 升级到5.20版本

    不建议先rm 先下载tar.gz ...然後手动安装..default 安装到/usr/local/目录下.. 然後修改/usr/bin/perl的symbolic link到/usr/local/b ...

  8. PHP下的命令行执行

    PHP 的命令行模式 以下是 PHP 二进制文件(即 php.exe 程序)提供的命令行模式的选项参数,您随时可以通过 PHP -h 命令来查询这些参数. Usage: php [options] [ ...

  9. perl 之eval

    eval是个表达式,语句末尾有一个分号, 发现在它的监视范围内出现致命错误,会立即停止运行整个块,退出后继续运行其 余的代码   eval的返回值就是语句块最后一条表达式的执行结果   eval非正常 ...

随机推荐

  1. BZOJ3925: [Zjoi2015]地震后的幻想乡

    Description 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任 ...

  2. shell运算

  3. NodeJs - 100

    Nodejs官方文档 https://nodejs.org/en/docs/ Nodejs官方网站 https://nodejs.org/en/ Nodejs的特征:  1.采用非阻塞性IO机制:—— ...

  4. HDU 1754 I Hate It(线段树单点更新区间最值查询)

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. spring boot结合thymeleaf

    1.在pom文件中加入thymeleaf相关的依赖 spring-boot-starter-thymeleaf 2.在resource文件夹下创建 template文件夹,在template文件夹中创 ...

  6. CSS权威指南 - 浮动和定位 2

    定位 定位的想法很简单元素框相对于正常位置出现在哪里. 定位:static,相对, 绝对, fixed, 继承 static就是默认的位置 相对就是相对于默认位置的偏移.原来的static定位位置依然 ...

  7. Hadoop2 实战系列之1 -- Hortonworks Sandbox的安装和使用

    欢迎转载,转载请注明出处,谢谢,徽沪一郎. 概要 本文主要讲述如何利用hortonworks sanbox来搭建hadoop2的学习环境.Hortonworks sanbox集成了hadoop2及其上 ...

  8. 使用php作linux自动执行脚本

    使用php作linux自动执行脚本 [来源] 达内    [编辑] 达内   [时间]2013-03-21 在作社区时, 时常需要统计上线人数等数据. 一般做法是, 把这段代码放在用户 login或者 ...

  9. 【IOS笔记】Resource Management in View Controllers

    Resource Management in View Controllers 视图控制器的资源管理 View controllers are an essential part of managin ...

  10. shell 中的引用

    1. 什么叫引用对 shell 脚本.程序.终端命令.变量.字符串等结果的反馈.2. 引用的类型 " " 双引号           ` 反引号' ' 单引号           ...