Perl
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
-Perlの情報。どんな書き方もできるので人によって好き嫌いが...
#contents
*基本テクニック [#ece7b708]
**引数のファイルを読み込んで表示 [#d1ca99af]
-下記コードをread.plとして保存
while(<>){
print "$_\n";
}
perl read.pl 読み込みたいファイル
**ファイルハンドルから配列に読み込ませる。 [#gf643d10]
**変数宣言 [#n11fdb9e]
-通常の変数の他、配列型や連想配列などは宣言が違ってくる
my $normal;
my %hash = ("key" => "value");
# 使うときは%ではなく$
$hash{"key"};
*一行Perl [#d877c039]
**[[HTMLの一括置き換え&バックアップ:http://www.itmedia.c...
perl -p -i.bak -e 's/catalog/index/g' *html
**タブの置き換え [#effb5b23]
perl -p -i.bak -e 's/\t/ /g' tabtest
*CPAN [#c128b245]
[[ここ:http://www.y-kit.jp/saba/xp/cpan.htm]]を参考に設定...
**基本操作 [#ffa8bccc]
|対話モード|perl -MCPAN -e shell|
|直接インストール|perl -MCPAN -e 'install "Bundle::Bugzil...
|config一覧を見る|cpan> O conf|
|configかえる|cpan> O conf urllist push http://newurl/|
|config保存|cpan> O conf commit|
perl -MCPAN -e 'install "Bundle::Bugzilla"'
-DBIとPostgres(CentOS3.4で成功)
perl -MCPAN -e 'install "DBI"'
perl -MCPAN -e 'install "DBD::Pg"'
**インクルードパスの追加 [#ac4366ef]
-@INCという配列変数にしたがってモジュールを検索している。...
print join("\n",@INC);
-追加するにはこんな感じで配列に加えてやる
unshift @INC,'/var/tmp';
-こんなやり方もある。こっちが直感的にわかりやすい気がする。
use lib 'ライブラリへのパス';
-コードにライブラリへのパスを書くのはいやだという人には環...
*Perlの使えるオプション [#ne3658bc]
**汚染検出モード [#g8ece690]
入力値をそのまま引数に渡すとエラーになる。ユーザ入力値を...
*正規表現ライブラリ [#x00bd759]
-というほど大げさなものではなく、一度やったことのメモ書き...
# 改行コード除去
$var =~ s/\r\n//g;
$var =~ s/\n//g;
# タブ除去
$var =~ s/\t//g;
# タグ除去
$var =~ s/<.*?>//g;
# 実体参照変換
$var =~ s/>/>/g;
$var =~ s/</</g;
$var =~ s/ / /g;
$var =~ s/"/"/g;
$var =~ s/&/&/g;
# 英数字以外が含まれていた場合は不正とみなす。
if ($var =~ /[^a-zA-Z0-9]+/) {
return undef;
}
*URLパラメータ分割 [#v673aa8d]
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
終了行:
-Perlの情報。どんな書き方もできるので人によって好き嫌いが...
#contents
*基本テクニック [#ece7b708]
**引数のファイルを読み込んで表示 [#d1ca99af]
-下記コードをread.plとして保存
while(<>){
print "$_\n";
}
perl read.pl 読み込みたいファイル
**ファイルハンドルから配列に読み込ませる。 [#gf643d10]
**変数宣言 [#n11fdb9e]
-通常の変数の他、配列型や連想配列などは宣言が違ってくる
my $normal;
my %hash = ("key" => "value");
# 使うときは%ではなく$
$hash{"key"};
*一行Perl [#d877c039]
**[[HTMLの一括置き換え&バックアップ:http://www.itmedia.c...
perl -p -i.bak -e 's/catalog/index/g' *html
**タブの置き換え [#effb5b23]
perl -p -i.bak -e 's/\t/ /g' tabtest
*CPAN [#c128b245]
[[ここ:http://www.y-kit.jp/saba/xp/cpan.htm]]を参考に設定...
**基本操作 [#ffa8bccc]
|対話モード|perl -MCPAN -e shell|
|直接インストール|perl -MCPAN -e 'install "Bundle::Bugzil...
|config一覧を見る|cpan> O conf|
|configかえる|cpan> O conf urllist push http://newurl/|
|config保存|cpan> O conf commit|
perl -MCPAN -e 'install "Bundle::Bugzilla"'
-DBIとPostgres(CentOS3.4で成功)
perl -MCPAN -e 'install "DBI"'
perl -MCPAN -e 'install "DBD::Pg"'
**インクルードパスの追加 [#ac4366ef]
-@INCという配列変数にしたがってモジュールを検索している。...
print join("\n",@INC);
-追加するにはこんな感じで配列に加えてやる
unshift @INC,'/var/tmp';
-こんなやり方もある。こっちが直感的にわかりやすい気がする。
use lib 'ライブラリへのパス';
-コードにライブラリへのパスを書くのはいやだという人には環...
*Perlの使えるオプション [#ne3658bc]
**汚染検出モード [#g8ece690]
入力値をそのまま引数に渡すとエラーになる。ユーザ入力値を...
*正規表現ライブラリ [#x00bd759]
-というほど大げさなものではなく、一度やったことのメモ書き...
# 改行コード除去
$var =~ s/\r\n//g;
$var =~ s/\n//g;
# タブ除去
$var =~ s/\t//g;
# タグ除去
$var =~ s/<.*?>//g;
# 実体参照変換
$var =~ s/>/>/g;
$var =~ s/</</g;
$var =~ s/ / /g;
$var =~ s/"/"/g;
$var =~ s/&/&/g;
# 英数字以外が含まれていた場合は不正とみなす。
if ($var =~ /[^a-zA-Z0-9]+/) {
return undef;
}
*URLパラメータ分割 [#v673aa8d]
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
ページ名: