2013-12-01から1ヶ月間の記事一覧

初めてのPerl 第7章正規表現の世界 練習問題6

読み込んだ行のうちwilmaとfredの両方を含む行をすべて出力しています。 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; open (FILE, "<", "names.txt"); foreach my $name (<FILE>){ if ($name =~/wilma/ && $name =~/fred/){ print $name; } } 以</file>…

初めてのPerl 第7章正規表現の世界 練習問題5

読み込んだ行のうち、2回連続して同じ文字が現れている行を表示する。 #!/usr/bin/perl use strict; use warnings; open (FILE, "<", "names.txt"); #大文字小文字を区別して、連続した文字が2つ出てきたときにマッチさせる。 foreach my $name (<FILE>){ if($name</file>…

初めてのPerl 第6章 練習問題3

#!/usr/bin/perl use strict; use warnings; foreach my $key(sort(keys %ENV)){ print "$key => $ENV{$key} \n"; } =pod while (my($key, $value)=each %ENV){ printf "%2s => %2s\n", $key, $value; } =cut BLOCKSIZE => K EDITOR => vi ENV => /home/vagr…

初めてのPerl 第7章 正規表現の世界 練習問題4

読み込んでいるファイルの先頭文字が大文字になっているものを表示する。 #!/usr/bin/perl use strict; use warnings; open (FILE, "<", "names.txt"); foreach my $name (<FILE>){ chomp($name); if ($name =~ /^[A-Z][a-z]+$/){ print $name . "\n"; } } 以下参</file>…

初めてのPerl 第7章 正規表現の世界 練習問題3

「.」がついている行を表示させる。 #!/usr/bin/perl use strict; use warnings; open (FILE, "<", "names.txt"); foreach my $name (<FILE>){ chomp($name); if ($name =~ /\./){ print $name . "\n"; } } 参照しているファイルになります。 fred flintstone fre</file>…

初めてのPerl 第7章正規表現の世界 練習問題2

fred、alfred、frederickなど「fred」が含まれた行を、大文字小文字区別せず表示する。 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; use 5.010; open (FILE, "<", "names.txt"); #<FILE>から1つづつ値を取り出して表示する foreach my $name (<FILE>){</file></file>…

初めてのPerl 第7章正規表現の世界 練習問題1

fred、alfred、frederickなど「fred」が含まれた行を表示する。 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; use 5.010; open (FILE, "<", "names.txt"); print Dumper @_; foreach my $name (<FILE>){ chomp($name); #print Dumper $name; #pri</file>…

初めてのPerl 第6章 ハッシュ 練習問題2

#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use 5.010; my %names; open (FILE, "<", "names.txt"); #ファイルから取得してきた値をハッシュに格納する。 foreach my $name(<FILE>){ chomp($name); $name = lc($name); $names{$name} += 1; } #</file>…

初めてのPerl第6章ハッシュ 練習問題1

入力した値(名)に応じて、対応した値(姓)を返します。 以下プログラムになります。 #!/usr/bin/perl use strict; use warnings; my @persons = <STDIN>; chomp(@persons); my %people = (fred => 'flintstone', barney => 'rubble', wilma => 'flintstone', ); </stdin>…

初めてのPerl 第5章 練習問題3

ユーザーに長い幅を指定された際に、定規を伸ばす実装はできませんでした。 最終的な出力結果に至るまでのコードをコメントアウトし、記載しています。 以下プログラムになります。 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; use 5.010;…

初めてのPerl 第5章 入出力 練習問題2

初めてのPerl 第5章 入出力 練習問題2 今回は正解する前まで考えていたコードも記載しています。以下のプログラム内のコメントアウトしてあるコードです。 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; use 5.010; #入力値を格納する。 my …

初めてのPerl 第5章入出力 練習問題1

問題文 catのような振る舞いをするプログラムを書いてください。ただし、このプログラムは行を逆に表示します。 以下記述内容です。 use strict; use warnings; use Data::Dumper; #コマンドラインで受け取ったファイルの内容を末尾から表示する print rever…

初めてのPerl 第4章 練習問題4

初めてのperl 第4章 練習問題4 use strict; use warnings; use Data::Dumper; use 5.010; # 入力された名前に対して、挨拶の処理を実行する。 sub greet{ my $name = shift @_; state @members; #挨拶 print "Hi "; # 名前を表示させる print $name . "!"; #…

初めてのPerl 第4章 練習問題2

初めてのPerl 第4章 練習問題2 use strict; use warnings; use 5.010; use Data::Dumper; sub total{ my @numbers = @_; my $have; foreach my $number(@numbers){ $have += $number; } return $have; } my @fred = 1..1000; my $fred_total = total(@fred);…

初めてのPerl 第4章 練習問題1

初めてのPerl 第4章 練習問題1 use strict; use warnings; use 5.010; sub total{ my @numbers = @_; my $have; foreach my $number(@numbers){ $have += $number; } return $have; } my @fred = qw/1 3 5 7 9 /; my $fred_total = total(@fred); print "the…

return演算子について ver3

return演算子 テスト3 use strict; use warnings; my $fred = 11; my $barney = 6; sub list_from_fred_to_barney{ if ($fred < $barney){ # $fredから$barneyまで増やして行く $fred..$barney; }else{ # $fredからbarneyまで減らして行く reverse $barney..…

return演算子について ver2

return演算子 テスト2 use strict; sub shop{ my($name, @fruits) = @_; my $i = 0; # yamadaさんの名前を表示したい。 print $name . "さんが作った果物は"; # フルーツの名前を表示したい # 最後のフルーツでなければ、カンマをつける。 foreach my $frui…

return演算子について ver1

return演算子について use strict; use warnings; my @names = qw/fred barney betty dino wilma pebbles bamm-bamm /; my $result = &which_element_is("betty", @names); print $result; # @fruits = qw/apple grape); # my($a, $b) = @fruits; # my($a, $…

永続的なプライベート変数のテスト

永続的なプライベート変数のテスト use strict; use warnings; use 5.010; my $n; sub marine1{ $n++; print "Hello$n "; } sub marine2{ state $e = 0; print "Hello $e"; $n += 1; } marine1; marine1; marine1; marine1; marine1; marine1; marine1; prin…

パラメータリストについて

パラメータリストについて use strict; use warnings; sub max{ if (@_ != 2) { print "true"; } } my $maximum = maximum(3,5,10,4,6); print $maximum; sub maximum{ my($max_so_far) = shift @_; foreach (@_){ if($_ > $max_so_far){ $max_so_far = $_; …

splict演算子について

splict演算子 use strict; use warnings; my @array = qw(pebbles dino fred barney betty); my @removed = splice @array, 2; print @removed . "\n"; print @array; 以下、出力結果となります。 3 pebblesdino

レキシカル関数について

レキシカル変数について use strict; use warnings; foreach(1..10){ my($square) = $_ * $_; print "$_ squared is $ square \n"; } #以下で宣言している岩の名前はforeachの中でしか利用できない。 foreach my $rock(qw/bedrock slate lava/){ print "One …

初めてのPerl 第4章

サブルーチン use strict; use warnings; use Data::Dumper; my $n; my $fred = 11; my $barney = 6; sub marine{ $n += 1; print "hello $n"; } sub sum_of_fred_and_barney{ print "hey!!"; $fred + $barney; } my $c = &sum_of_fred_and_barney; print "\…

初めてのPerl 第3章 ver2

本日の作業内容 初めてのperl(配列、サブルーチン) 以下本日行ったテストコードと、その出力結果です。 配列 use strict; use warnings; use data::dumper; my @fred; $fred[99] = "blue"; $fred[0] = "takeshi"; $fred[1] = "takurou"; $fred[2] = "mika"…

初めてのPerl 第3章

ユーザーが入力したものをリストに格納して、入力終了時に逆出力する。 use strict; use warnings; use Data::Dumper; my @lists = <STDIN>; my $counts = 0; foreach my $line (reverse @lists) { print $line; } 表示結果は以下のような表示になりました。 a b c </stdin>…

初めてのPerl 第2章

初めてのPerl HelloWorldを表示させてみる。 use strict; use warnings; print "HelloWorld\n"; 半径12.5センチの円の円周を求める。 my $radius = 12.5; my $pi = 3.14; print 2 * $pi * $radius ; ユーザーに半径を入力してもらって計算結果を出力する。 m…

アクセス制御や認可制御の欠落

アクセス制御や認可制御の欠落 現在公開されているウェブサイトの中には、運営者の認識のなさから、不適切な 設計で作成されたまま運営を続けているものが存在しています。 公開の際などは以下の2点に注意し、コンテンツの公開などを行うべきです。 アクセス…

メールヘッダ・インジェクション

メールヘッダ・インジェクション ウェブサイトによっては利用者が入力下した内容を特定のメールアドレスへ 配信するシステもあります。 メールアドレスは固定となり、管理者以外からの変更ができないようになっていますが、 実装によっては利用者が任意のア…

HTTPヘッダ・インジェクション

HTTPヘッダ・インジェクション ウェブアプリケーションはリクエストに対して出力するHTTPレスポンスヘッダのフィールド値を 外部から渡されるパラメータの値等を利用して、動的に生成するものがあります。 (例:パラメータから取得したURL情報をLocationヘ…

クロスサイト・リクエスト・フォージェリ

CSRF(クロスサイト・リクエスト・フォージェリ) ウェブサイトはログイン機能を持ったものが多々存在します。しかし、ログインした 利用者からのリクエストについて、利用者が意図したリクエストであるかを識別できる 仕組みを持たないサイトは、外部サイト…