基本テクニック

引数のファイルを読み込んで表示

while(<>){
   print "$_\n";
}
perl read.pl 読み込みたいファイル

ファイルハンドルから配列に読み込ませる。

変数宣言

my $normal;
my %hash = ("key" => "value");
# 使うときは%ではなく$
$hash{"key"};

一行Perl

HTMLの一括置き換え&バックアップ

perl -p -i.bak -e 's/catalog/index/g' *html

タブの置き換え

perl -p -i.bak -e 's/\t/    /g' tabtest

CPAN

ここを参考に設定する。ほとんどリターンキーでOKで、ミラーサイトの選択だけ慎重に!

基本操作

対話モードperl -MCPAN -e shell
直接インストールperl -MCPAN -e 'install "Bundle::Bugzilla"'
config一覧を見るcpan> O conf
configかえるcpan> O conf urllist push http://newurl/
config保存cpan> O conf commit
perl -MCPAN -e 'install "Bundle::Bugzilla"'
perl -MCPAN -e 'install "DBI"'
perl -MCPAN -e 'install "DBD::Pg"'

インクルードパスの追加

print join("\n",@INC);
unshift @INC,'/var/tmp';
use lib 'ライブラリへのパス';

Perlの使えるオプション

汚染検出モード

入力値をそのまま引数に渡すとエラーになる。ユーザ入力値をそのまま使うプログラムを改修する羽目になったらこいつでエラーを出して改修個所の当たりをつけるといいだろう。新規のプログラムでは当然このオプションをつけてもエラーが出ないようなプログラミングを心がけなければいけない。

正規表現ライブラリ

# 改行コード除去
$var =~ s/\r\n//g;
$var =~ s/\n//g;
# タブ除去
$var =~ s/\t//g;
# タグ除去
$var =~ s/<.*?>//g;
# 実体参照変換
$var =~ s/&gt;/>/g;
$var =~ s/&lt;/</g;
$var =~ s/&nbsp;/ /g;
$var =~ s/&quot;/"/g;
$var =~ s/&amp;/&/g;
# 英数字以外が含まれていた場合は不正とみなす。
if ($var =~ /[^a-zA-Z0-9]+/) {
    return undef;
}

URLパラメータ分割

use strict;
my $url = shift;
my @params = split(/&/, $url);
my @empty;
my @contain;
foreach my $parts(@params){
 #print "$parts\n";
 @_ = split(/=/, $parts);
 if (scalar(@_) == 2) {
       push(@contain, @_[0] . "=" . @_[1]);
 } else {
       push(@empty, @_[0] . "=");
 }
}
foreach my $parts(@contain){
        print "$parts&\n";
}
foreach my $parts(@empty){
        print "$parts&\n";
}
Counter: 11187, today: 1, yesterday: 0

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-10-14 (金) 13:16:52