perlの文法2
perlの文法2
「use strict」
perlを書くときに推奨されている書き方。
メリットとしてはバグが減る。
(例えば変数宣言にはmyが必須になったり。)
、「スコープ (関数) 内でのみ有効な変数宣言」 をつけるべし!
「use Warning」
初期化されていない変数を使用した場合、警告してくれる。
「サブルーチン」
sub func{ print "引数は".$_[0]."".$_[1]."\n"; } $func(1,"AAA"); #引数は1 AAA
「shift」
shiftは配列の先頭の要素を取り出します。
★一般的なshift
my @city = ("tokyo","osaka"); my $val = shift($city); print @val; //tokyo
★サブルーチン内でのshift
sub内では@_がデフォルトの引数となる。
subx(4000); sub subx{ my $test = shift; print $test; //4000 }
「chomp」
「chomp」関数は対象の文字列の末尾の改行文字を削除します。
[foreach]
構文: foreach 変数(リスト){}
「split」
my $txt = "this is a pen"; my @list = split(/ /,$txt); foreach my $parts(@list){ print $parts; } #this #is #a #pen
「Data::Dumper」
データダンパーは、データ構造をダンプする為に使用します。
my $var = { LLs => [qw/php ruby perl], perl = > 'perl-mongers'; }; warn Dumper($var); #$VAR1 = { # 'perl' => 'perl-mongets', # 'LLs' => [ # 'php','ruby','perl' # ] # #};
[qw]
配列の初期化で使用 ('AA','BB','CC') qw/AA BB CC/ は同じ。下記のような配列で使用。 my @city = qw/tokyo osaka nagoya/; for(my $i=0;$i<3;$i++){ print "$city[$i]\n" }
[Data::Dumperの$Data::Dumper::Useperl = 1; ]
Data::Dumperの中でUTF8フラグのついているデータがエスケープ
されて文字化け状態になってしまうので、UTF8の日本語を使用する場合には必ず設定。
[qq]
qq//でダブルクォートで囲った文字列と同じ意味を表現できる。
my $txt = qq/Not found "$file"/;
変わりに
qq() qq{} qq## qq[] qq!!などが使用できまふ。
[引数の渡し方]
my ($aa,$bb,cc) = &_rtnResponse; sub _rtnResponse { my %responses = (aa=>111,bb=>222,cc=>333); return %responses; }
[mysql]
use DBI; use Readonly; #データベースの接続先を指定 Readonly my $datasources => [ 'dbi:mysql:apparelclip:182.48.40.66', 'testuser','ogtfu2ec']; sub get_entries { my $dbh = DBI->connect( @{$datasources}, { RootClass => "DBIx::ContextualFetch" } ) or die $DBI::errstr; my $sql = qq{SELECT * FROM clip_bookmark where data_acquire_date >= '2010-01-01' }; my $sth = $dbh->prepare($sql); $sth->execute; my $entries = $sth->fetchall_hash; $sth->finish; $dbh->disconnect; return $entries; }