perl
リストの内容だけ繰り返す
#! /usr/bin/perl
@list = (' item1 ', ' item2 ');
foreach $val (@list) {
s/ //g;
print "$val\n";
}
リストの内容だけ繰り返す(特殊変数を使用)
#! /usr/bin/perl
@list = (' item1 ', ' item2 ');
foreach (@list) {
s/ //g;
print "$_\n";
}
#! /usr/bin/perl
@list = ('item1', 'item2');
myfunction(@list);
sub myfunction {
foreach ( @_ ) {
print "$_\n";
}
}
標準入力から入ったものをそのまま出力1
#! /usr/bin/perl
foreach (<>) {
print $_;
}
while
while (<>) {
s/[\r\n]//g; # 改行コードを除去。
next if ( $_ eq "" ); # 空行ならスキップ
next if ( /^#/ ); # コメント行はスキップ
my ($var1, $var2) = split( /\s+/, $_);
:
}
ファイルハンドラ
#!/usr/bin/perl
$filename = "filename.txt";
open(my $fh, "<", $filename)
or die "cannot open < ".$filename.": $!";
while ( <$fh> ) {
s/[\r\n]//g; # 改行コードを除去。
next if ( $_ eq "" ); # 空行ならスキップ
next if ( /^\s*#/ ); # コメント行ならスキップ
:
:
}
close($fh)
or warn "close failed: $!";;
引数の利用
#! /usr/bin/perl
my $count = @ARGV;
if ( $count == 0 ) {
print "引数がないっす";
}
foreach (@ARGV) {
print "$_\n";
}
オプションと引数
#! /usr/bin/perl
use Getopt::Std;
my $flg=0;
getopts("f:tdh", \%opts);
if ($opts{'f'}) {
$flg = $flg + 1;
print $opts{f};
print "\n";
}
if ($opts{'t'}) {
$flg = $flg + 2;
}
if ($opts{'d'}) {
$flg = $flg + 4;
}
usage() if ($opts{'h'}) ;
print "$flg\n";
my $count = @ARGV;
print "$count\n";
foreach (@ARGV) {
print "$_\n";
}
sub usage {
print "help message...\n";
}
http
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
$url='http://xxx.xxx.xxx.xxx/xxx.html';
my $proxy = new LWP::UserAgent;
my $req = HTTP::Request->new('GET' => $URL);
my $res = $proxy->request($req);
$source = $res->content;
$source =~ s/<.*?>//g;
日付について1
#! /usr/bin/perl
my @week = qw(Sun Mon Tue Wed Thu Fri Sat);
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
#my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time());
$year = $year + 1900;
$mon = $mon + 1;
$yday = $yday + 1;
print "$year-$mon-$mday $hour:$min:$sec\n";
print "$year-D$yday $week[$wday]\n";
if ( $isdst ) { print "summer time\n"; }
日付について2
#! /usr/bin/perl
use POSIX;
my $isleap = 0;
my @mdays = (31,28,31,30,31,30,31,31,30,31,30,31);
my $ydays;
my $message;
my ( $year, $month, $day, $dow, $downum, $doy, $woy ) = split( /\,/, strftime( "%Y,%m,%d,%A,%w,%j,%W", localtime() ) );
if ( ( $year % 4 ) == 0 ) {
if ( ( ($year % 100) != 0 ) || ( ($year % 400) == 0 ) ) {
$isleap = 1;
$mdays[1] = 29;
}
}
$ydays += $_ for @mdays;
#$month += 0;
#$day += 0;
#$doy += 0;
#$woy += 0;
$message = "今日は $year年$month月$day日、第$woy週の$dowです。\n";
if ( $isleap ) { $message = $message."閏年なので"; }
$message = $message."年間日数 $ydays日あるうちの $doy日目です。";
print $message;
exit;
日付について3
#! /usr/bin/perl
use Time::Local;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time()+3600);
my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year );
my $string = localtime($time);
print $string;
exit;