条件式で || & && がおかしな動き> or and で統一しましょう & && で無事に動くことが多いようですが、 and が確実です
行末の改行文字削除 $_ = $str; chomp $_; s/\r//; $str = $_; # 行末の改行文字削除
C Language array[] = { "a:", "b:", "c:", "d:", "e:"}; ↓ perl @array = ( "a:", "b:", "c:", "d:", "e:"); * ={} でなく =() であることに注意 * 取り出し例 : foreach $value ( @array){ ; } * shift で取り出すこともできるが、配列要素が削除されることに注意
通常は、httpサーバの error_log 参照が必要だが( tail -f /var/log/httpd/error_log ) Carp モジュールを以下のように組み込めば、同内容がhttpクライアントに出力される --- $DEBUG = 1; if( $DEBUG != 0 ){ # ( $DEBUG = 1; でデバッグ出力を on/off できるように ) use CGI::Carp qw(fatalsToBrowser); }
perl5未満非対応でよいなら、迷わず「 local を my に」置換するべき 変数のスコープ local 使用時の注意点 一般の言語でいう内部変数とは異なることを知る必要がある。 perlで、同名であれば、local定義された変数も、同じ場所に格納される。 perlは実行時に変数スコープが変わる都度、その場所の内容を書き換える。 my $m; # Perl5 が使えるなら、何も考えず my を使うこと local $l; # Perl4 の環境でも動作することが必要なら myは使えないので localを使う以外ない $var = 1; sub foo { local $var = 2; # ダイナミックスコープ宣言( ダイナミックスコープ変数 ) } sub boo { print $var;# 2 を出力 } print $var; # 1 を出力 sub内で宣言された local変数は、「そのsub内でのみ有効」なのではなく、あらゆる sub内で有効。 他の sub内で参照すると期待する広域変数でなく、どこか別の sub内にて代入された値が返される。
# 文字列をURLエンコードして返す # 半角英数字及び、一部の記号( * - . @ ) はエンコード不要 # 半角スペース ' ' → '+' sub url_encode{ my $str = shift; # 1byteづつ、文字コードを2桁の16進数に変換し %xx 形式に '!' → %21 $str =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg; return($str); } # URLエンコードされた文字列をデコードして返す sub url_decode{ my $str = shift; $str =~ tr/+/ /; $str =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; #'+' を ' ' に %xx を該当の文字コードに戻す return($str); }
# ハッシュ変数の宣言 %member; # 代入 $member{'Akai'} = 'red@domain.com'; $member{'Aoi'} = 'blue@domain.com'; %member = ('Amai', 'sweet@domain.com', 'Akudoi', 'bad@domain.com'); %member = ( "Osoi" => "slow@domain.com", "Hayai" => "fast@domain.com", ); # 要素数を取得 $n = keys( %hash ); # 内容をすべて出力 foreach $key ( keys %member ) { print "$key : $member{$key}", "\n"; } # 内容をすべて出力 while ( ($key, $value) = each(%member) ) { print "key:$key, value:$value\n"; } # 含まれる KEYをすべて取得 @key = keys( %hash ); # 含まれる値をすべて取得 @value = values( %hash );
( 宅内専用です... ) NET::POP3 MIME-Base64 MIME::Base64 MIME-tools MIME::Words MIME::Entity MIME::Parser MIME::ParserBase MIME::Head MIME::Body MailTools Mail::Internet
since 04/08/08(sun)