1.2010-04-18 format 输出
format STDOUT=
@||||| ################$name居中对齐在5个字符内
$name
@<<<<< ################$word左对齐在5个字符内
$word
@>>>>> ###############右对齐
@<<<<<< @<< @>>>>>>>>>>>
$town,$street,$state
. ##########点号表示格式结束
$town='aa';
$street='bb';
$state='cc';
write(); ##########输出标识
2、 1 #!/usr/bin/perl -w
2 open "FILE","b.txt" or die "can't open b\.txt";
3 while () {
4 if ($_=~/(\d{3}\.\d{3}\.\d \.\d )/){ ####过滤出ip地址,
5 print "$1\n";
6 }
7 }
3、#!/usr/bin/perl
#use LWP::Simple;
use Color::Output;
Color::Output::Init;
system("clear");
open FILE,">file";
for $i (1..50) {
printf FILE ("%02d %s",$i,"\n");
}
close FILE;
open MO,"while () {
if ($_=~/(\d{2})/) {
#printf "%${1}s %s",$1,"\n";
cprint("\x035 $1"); ============如何引入变量
}
}
close MO;
4、改变大小写
#!/usr/bin/perl
open (FIN,"open (FOUT,"|tr '[a-z]' '[A-Z]' 1>out 2>&1");
while () {
if ($_=~/print/) {
print FOUT "$_";
}
}
5、数组的两种形式
my @array=(1,3,4); =====>前面加逗号
my @array=qw(1 3 4); =====>用qw不加逗号
6、my $count=()=$a=~ m/ab/g; =====>正则匹配个数
7、
#!/usr/bin/perl
my @words;
open FH,"
while () {
if (/\$url/..eof)======>between $url and END
{
push @words,$_;
}
}
print "\@words======>@words";
8、随机生成ip
join ".", map int rand 256, 1 .. 4
9、ref操作符
ref($a)表达式得出的值:
ARRAY
HASH
CODE
REF
GLOB
LVALUE
10、input regular
#!/usr/bin/perl
print "Please input regular expr:\n";
$regx=;
chomp($regx);
opendir $dh,"/home/jwq/Desktop/ANSIColor-3.00";
@h=readdir $dh;
for (@h) {
if (/$regx/) {
print "$_\n";
}
}
11、Perl调用其他程序方法
1. system(”command”);
使用该命令将开启一个子进程执行引号中的命令,父进程将等待子进程结束并继续执行下面的代码。
2. exec(”command”);
效果同system命令类似,区别是不会开启子进程,而是取代父进程,因此执行完引号中的命令后进程即结束。一般和fork配合使用。
3. `command`;
使用反引号调用外部命令能够捕获其标准输出,并按行返回且每行结束处附带一个回车。反引号中的变量在编译时会被内插为其值。
4. open LIST “ls -l|”;
open MORE “|more”;
@list=;
print MORE @list;
close(LIST);
close(MORE);
使用带管道的文件句柄来执行外部命令,使用方式与读写文件类似。可以从外部命令的输出读取数据,也可以将数据输出到外部命令作为输入。
5. defined(my $pid=fork) or die “Can not fork: $!/n”;
unless ($pid) {
exec (”date”);
}
waitpid ($pid,0);
使用fork将会开启子进程与父进程同时执行之后的代码,其中父进程中fork会返回一个非零的数,而子进程中将返回零。
上面的代码完成和system(”date”)相同的功能。比起system单纯地调用外部命令,fork可以完成更加复杂的进程操作。
12、用LWP::UserAgent访问路由器(未完成)
#!/usr/bin/perl
use LWP 6.02;
my $browser=LWP::UserAgent->new;
my $url="";
my $response=$browser->post($url,
['user_name' => 'danganj',
'password' => '30wish',
'lang' => "0",
]
);
#print $response->content_type;
print $response->content;
open File,">file";
print File $response->content;
#print $response->status_line;
#print $response->headers_as_string;
13、here文档
$a=<
HERE
阅读(1496) | 评论(1) | 转发(0) |