Perlとperlに関するperlcodesampleのブックマーク (1,930)

  • 「=~」 - パターンマッチ演算子 - Perl入門ゼミ

    Perl › 演算子 › here 「=~」は「パターンマッチ演算子」と呼ばれ、正規表現でパターンマッチと置換を行うときに利用します。 パターンマッチ 文字列が、指定した正規表現を含むかどうかを調べるには次のようにします。 $message =~ /play/ $string =~ /正規表現/。$string が 正規表現を含んでいれば、0以外が返ります。=~ を、パターンマッチ演算子と呼びます。今回の例では、正規表現を使わずに play という文字を使っています。 パターンマッチしない 文字列が、指定した正規表現を含まないかを調べるには次のようにします。 $message !~ /you/ $string !~ /正規表現/。$string が 正規表現を含んでいなければ、0以外が返ります。 置換 正規表現によって文字列を置換するには次のようにします。 $message =~ s/te

    「=~」 - パターンマッチ演算子 - Perl入門ゼミ
  • Perlゼミ(サンプルコードPerl入門)

  • Perlゼミ(サンプルコードPerl入門)

  • Perlゼミ(サンプルコードPerl入門)

    Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm

  • Perlゼミ(サンプルコードPerl入門)

  • Perlゼミ(サンプルコードPerl入門)

    Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm

  • ord関数 - ASCII文字を数値に変換 - Perl入門ゼミ

    Perl › 関数 › here ord関数を使用すれば、ASCIIコードの文字を内部表現である数値に変換することができます。これはchr関数と反対の変換です。 my $ascii_code = ord $char; ord関数のサンプル ord関数を使って、ASCIIコードの文字を内部表現である数値に変換するサンプルです。 use strict; use warnings; print "(1)ASCIIコードの文字を内部表\現である数値に変換する。\n"; # ASCII文字コードでは65,66,67はそれぞれ 'A','B','C'に対応する。 my $A = 'A'; my $B = 'B'; my $C = 'C'; print ord($A) . "\n"; print ord($B) . "\n"; print ord($C) . "\n"; Perl › 関数 › here

    ord関数 - ASCII文字を数値に変換 - Perl入門ゼミ
  • chr関数 - 数値をASCIIに変換 - Perl入門ゼミ

    Perl › 関数 › here chr関数を使用すると数値をASCII(アスキー)コードに対応する文字に変換することができます。第1引数にASCIIコードを指定するとそれに対応する文字が戻り値で返ります。これはord関数の逆の演算です。 my $char = chr $ascii_code; chr関数のサンプル chr関数を使って、数値をASCIIコード対応する文字に変換するサンプルです。 use strict; use warnings; # ASCII文字コードでは65,66,67はそれぞれ 'A','B','C'に対応する。 my $a_num = 65; my $b_num = 66; my $c_num = 67; print chr($a_num) . "\n"; print chr($b_num) . "\n"; print chr($c_num) . "\n"; Per

    chr関数 - 数値をASCIIに変換 - Perl入門ゼミ
  • crypt関数 - ダイジェストを作成してパスワードの照合を行う - Perl入門ゼミ

    Perl › 関数 › here crypt関数を使うと、パスワードをダイジェストにして保存しておくことができます。パスワードを平文で保存しておくと見られてしまいます。第一引数はパスワードです。第二引数はサルトという任意の文字列で、ダイジェストを解読されにくくするためのものです。 my $digest = crypt($passwd, $salt); ダイジェストの作成を行うなら現在ならばcrypt関数よりも、Digest::MD5やDigest::SHAを使うのがお勧めです。 crypt関数のサンプル crypt関数を使ったサンプルです。 use strict; use warnings; # パスワードを作成 # [./0-9A-Za-z] からなるランダムな2文字をsaltとして作成する print "(1)パスワードからダイジェストを作成する。\n"; my $passwd = '

    crypt関数 - ダイジェストを作成してパスワードの照合を行う - Perl入門ゼミ
  • uc関数 - 小文字を大文字に変換する - Perl入門ゼミ

    Perl › 関数 › here uc関数を使用すると小文字から大文字へ変換することができます。uc関数は引数のそれぞれの文字を大文字に変換します。変換できない文字の場合は引数に与えた文字がそのまま返されます。 my $str = uc "aaa"; サンプルプログラム 小文字から大文字への変換のサンプルです。 use strict; use warnings; # 小文字から大文字への変換 my $low_to_up = uc "aaa"; # ダブルクォート文字列では\Lと\Eで囲んで小文字にすることもできる my $low_to_up2 = "\Uab\Ecd"; print "aaa -> $low_to_up\n"; print "abcd -> $low_to_up2\n"; Perl › 関数 › here

    uc関数 - 小文字を大文字に変換する - Perl入門ゼミ
  • reverse関数 - 配列または文字列の順序を逆順にする - Perl入門ゼミ

    Perl › 関数 › here reverse関数を使用すると、配列または文字列の順序を逆順にすることができます。reverse関数は配列に対して使用すると配列の順序を反転させますが、文字列に対して使用すると文字列を反転させます。 my $reversed = reverse $str; my @reversed = reverse @array; reverse関数のサンプル reverse関数を使って、文字列の順序を逆順にするサンプルです。 use strict; use warnings; print "文字列を反転\n"; my $str = "abcdefg"; my $reverse = reverse $str; print "$reverse\n"; reverse関数を使って、配列の順序を逆順にするサンプルです。 use strict; use warnings; pr

    reverse関数 - 配列または文字列の順序を逆順にする - Perl入門ゼミ
  • split関数 - 文字列の分割 - Perl入門ゼミ

    Perl › 関数 › here split関数を使用すると区切り文字を指定して文字列を分割することができます。 my @ret = split(/,/, $person_csv); 第1引数には区切り文字を正規表現で指定します。第2引数には分割したい文字列を指定します。戻り値は分割された文字列の配列です。 正規表現を使う split関数は、第一引数に正規表現を受け取るので、複数の空白で分割ということも簡単にできます。 my @ret = split(/ +/, $line); 文字列の連結 split関数は、文字列を分解しますが、その反対の操作として、文字列の連結を行いたい場合は、join関数を使用します。join関数については以下の記事をご覧ください。 join関数 - 区切り文字で配列を結合 サンプル split関数のサンプルプログラムです。 CSVデータ CSV形式のデータを配列に

    split関数 - 文字列の分割 - Perl入門ゼミ
  • join関数 - 区切り文字で配列を結合 - Perl入門ゼミ

    Perl › 関数 › here join関数を使用すると、区切り文字を指定して配列を結合することができます。 my $joined = join(',', @array); 第1引数は、区切り文字です。この例では区切り文字としてカンマを指定しています。第2引数以降で与えられた配列に含まれる文字列が区切り文字で結合されます。 次の簡単な例を見てください。join関数の使い方の簡単な例です。配列に含まれる文字列をカンマで連結してCSVデータを作成しています。 # 配列から「Yuki,Toro,Kato」を作成 my @names = ('Yuki', 'Taro', 'Kato'); my $names_csv = join(',', @names); 区切り文字はなんでもよく、タブ文字「\t」もよく利用されます。 # 配列から「Yuki Toro Kato」を作成 my @names =

    join関数 - 区切り文字で配列を結合 - Perl入門ゼミ
  • chomp関数 - 改行を削除する - Perl入門ゼミ

    Perl › 関数 › here chomp関数を使用すると、改行を削除することができます。 # 末尾の改行を削除 chomp $line; OSに依存しないで改行を削除する chompに関して一つ注意点があります。chompは環境に依存するということです。たとえばWindowsで実行した場合は末尾の「\x0D\x0A」あるいは「\x0A」を取り除きますが、Unix系OSで実行した場合は「\x0A」を取り除きます。\x0Dはキャリッジリターンを、\x0Aはラインフィードを表す特殊文字です。Windowsでは改行文字は「\x0D\x0A」で表されれ、Unixでは「\x0A」で表されます。 このような理由でWindows上で保存したスクリプトと読み込んだテキストファイルを、そのままUnix上に移動させた場合に、正しく改行が取り除かれないということが発生します。環境に依存しないで改行を取り除きた

    chomp関数 - 改行を削除する - Perl入門ゼミ
  • index関数 - 文字の検索 - Perl入門ゼミ

    Perl › 関数 › here index関数を使用すると文字列を検索することができます。 第1引数には検索対象の文字列、第2引数には検索したい文字列を指定します。第3引数には検索開始位置を指定することができます。省略した場合は文字列の最初から検索が行われます。見つかればその位置を、見つからなければ-1が返却されます。 my $pos = index($target, $str); 2回目に出現する文字を検索する my $word_love_pos_second = index($message, 'love', $word_love_pos_first + 1); indexの第3引数に、検索開始位置を指定することができる。1回目の検索で、発見した位置の次の位置を指定する。 検索した文字のすべての位置を取得する { my @found_positions = (); my $found

    index関数 - 文字の検索 - Perl入門ゼミ
  • substr関数 - 文字列の切り出し・置換 - Perl入門ゼミ

    Perl › 関数 › here substr関数を使用すると、指定した位置の文字を切り出す、あるいは置換することができます。第1引数は文字列、第2引数は開始位置、第3引数は切り出す長さです。開始位置は0から始まります。第3引数を省略した場合は文字列の末尾までが対象になります。 my $word_like = substr($message, 2, 4); 指定した位置の文字を置換するするには、第4引数に文字列を指定します。 substr($message, 2, 4, 'want to eat'); substr関数のサンプルプログラム substr関数を使って、指定した位置の文字を切り出すサンプルです。以下の例では文字列「Ken」が抽出されます。 # 指定した位置の文字を切り出す。切り出される文字列は「Ken」。 my $message = "I'm Ken"; my $name =

    substr関数 - 文字列の切り出し・置換 - Perl入門ゼミ
  • length関数 - 文字列の長さを取得 - Perl入門ゼミ

    Perl › 関数 › here length関数を使用すると文字列の長さを取得するすることができます。 $ret = length $str; たとえば「abcde」という文字列の長さは5になります。 # 文字列の長さは5 my $length = length 'abcde'; 日語の文字列の長さを正しく取得する length関数は文字列の長さを返却しますが、日語の文字列の長さを正しく取得するためには、覚えておかなければならないことがひとつあります。 それは、内部文字列に対して、length関数を使う必要があるということです。内部文字列というのはEncodeモジュールのdecode関数でデコードされた文字列のことです。 内部文字列については、以下の記事を参考にしてください。 Encodeモジュール - 日語などのマルチバイト文字列を適切に処理する 以下にサンプルプログラムを載せて

    length関数 - 文字列の長さを取得 - Perl入門ゼミ
  • ヒアドキュメント - 複数行の文字列を簡単に作成 - Perl入門ゼミ

    Perl › 演算子 › here ヒアドキュメントを用いれば複数の文字列をわかりやすく記述することができます。 my $text = <<'EOS'; aaaa iiii uuuu EOS ヒアドキュメントを用いれば、<<'EOS' と EOS にはさまれた行にある文字列を、改行を維持して文字列に代入することができます。 セミコロンの位置に注意しましょう。最後のEOSのあとには、セミコロンはなくて、 最初の行の最後にセミコロンがあります。 EOSという部分は任意の文字列で構いません。このサンプルでは「End Of String」という意味でEOSを使っています。 ヒアドキュメントの中で変数展開する <<'EOS' を <<"EOS" に変更すれば、ヒアドキュメントの中で、変数展開が可能になります。 my $message = 'Hello'; # 変数展開可能なヒアドキュメント my $

    ヒアドキュメント - 複数行の文字列を簡単に作成 - Perl入門ゼミ
  • 文字列リスト演算子 - qw() - Perl入門ゼミ

    Perl › 演算子 › here 文字列のリストを簡潔に記述するための文字列リスト演算子と呼ばれる演算子があります。文字列リスト演算子を使用するとシングルクォートやカンマを記述することなく文字列のリストを表現できます。 qw(文字列1 文字列2 文字列3) 実際に文字列リスト演算子を使用した例です。 my @strings = qw/cat dog mouse/; 次の文字列のリストと同じ意味になります。 my @strings = ('cat', 'dog', 'mouse'); 文字列を囲む記号には()以外の文字も使用することができます。 qw(cat dog mouse) qw/cat dog mouse/; qw{cat dog mouse} qw#cat dog mouse# qw[cat dog mouse] qw!cat dog mouse! サンプルプログラム 文字列リス

    文字列リスト演算子 - qw() - Perl入門ゼミ
  • 文字列連結演算子「.」 - 文字列の連結 - Perl入門ゼミ

    Perl › 演算子 › here 文字列連結演算子「.」を使うと文字列を連結することができます。 my $str3 = $str1 . $str2; 文字列を連結するサンプルです。 my $str1 = 'ABC'; my $str2 = 'DEF'; my $str3 = $str1 . $str2; 文字列「$str3」は「ABCDEF」になります。 Perlでは文字列連結を加算演算子「+」で行うのではないので注意しましょう。「+」は数値の加算に使い「.」は文字列の連結に使います。 変数展開との使い分け 文字列が変数だけで構成される場合は変数展開を使って書くのが簡単です。 my $str1 = 'ABC'; my $str2 = 'DEF'; my $str3 = "$str1$str2"; 関数と組み合わせて使う場合は、文字列連結演算子が便利です。 my @nums = (1, 2

    文字列連結演算子「.」 - 文字列の連結 - Perl入門ゼミ