タグ

perlとdevelopmentに関するkathewのブックマーク (21)

  • Perlのprintデバッグをシュッと見やすくする - 文字っぽいの。

    この記事は、Perl Advent Calendar 2014 - Qiita の6日目の記事です。(※初学者向け) シュッと変数の様子を見る Perlでプログラムを書いていて、「ここの変数なにが入ってるのかな?」と調べたい場合、このようにprintで表示させるプログラムを書くと use strict; use warnings; my @array = (1, 2, 3, 4, 5); my $array_ref = [@array]; my %hash = ( name => "tarou", age => 20, ); my $hash_ref = {%hash}; print @array, "\n"; # => 12345 print %hash, "\n"; # => nametarouage20 print $array_ref, "\n"; # => ARRAY(0x7fd

    Perlのprintデバッグをシュッと見やすくする - 文字っぽいの。
  • perlでスクレイピング「HTTPでページを取ってくる」 - メメメモモ

    perlでのスクレイピング関連をメモしていきたいと思います。 まずスクレイピングするときに行なう処理は、ページを取ってくることです。 普段は、URLをブラウザのURL欄に入力し、ブラウザがHTTPでサーバにアクセスしてページを取得しています。 この処理をperlで行なうようにします。 使用するモジュールは、次の二つがあります。 LWP::Simple LWP::UserAgent これらのモジュールは、ブラウザと同様にHTTPでサーバにアクセスしてページを取得する機能があります。 それぞれの使用例は下記のようになります。 #!/usr/bin/env perl use strict; use warnings; use LWP::Simple; my $url = 'http://yahoo.co.jp/'; # LWP::Simpleの「get」関数を使用 my $html = get(

    perlでスクレイピング「HTTPでページを取ってくる」 - メメメモモ
  • [perl] 学習メモ:Hello world!! → GET値の取得と処理 → ファイルの内容出力

    ちょっとPerlが必要になったので、Hellow worldからの過程をメモることにします。 このエントリーの最終目標は、[Ajax + PHP] Web2.0的にHTMLソースを隠す方法 で晒した Request.phpでやってることで、 GETを取得(pとaction) 取得したGET値pに基づいてファイルを読み込む 読み込んだファイルの内容を出力 です。 Perlが使えるとさくらインターネットのライトプランみたいなPerlCGIしか許可されてない鯖で強い。 安価な鯖だとPHPダメって所は多いです。 現時点での自分の状況を書くと… CGI設置経験は豊富(でも最近ご無沙汰) PHPJavaScriptの文法を元にそこそこ読めるけどイチからは書けない 人が書いたソースのカスタマイズはそれなりに出来る Perlでのファイル操作は全く知識がない POSTとGETの扱いも良く分からない C+

    [perl] 学習メモ:Hello world!! → GET値の取得と処理 → ファイルの内容出力
  • HTMLファイルにPerlを埋め込む方法 | 真夜中に奔る

    一定期間更新がないため広告を表示しています

    HTMLファイルにPerlを埋め込む方法 | 真夜中に奔る
    kathew
    kathew 2015/10/27
    なるほど。Perlの実行結果をJavascriptで出力してやるのね。(実行結果が欲しいだけのメールフォームとかなら)document.writeもせずに、ただのPerlを書いて呼び出すだけでも良さそうだ
  • 移転しました

    移転しました。 https://mas3lab.net/perl/waza/strcat.html

  • if文で複数の条件式を順に評価する(if..elsif..else)

    if 文では単独の条件分岐だけではなく複数の条件分岐を使って処理を分けることができます。 if .. elsif .. else 文を使用します。書式は次の通りです。 if (条件式1) { 条件式1が真の時に実行する処理; }elsif (条件式2) { 条件式1が偽で条件式2が真の時に実行する処理; }elsif (条件式3) { 条件式1及び条件式2が偽で条件式3が真の時に実行する処理; }else{ すべての条件式が偽の時に実行する処理; } 最初の条件式は今までの if 文と同じです。条件式が真の場合には次に記述されたブロック内の処理を行いそして if 文を終了します。そして条件式が偽の場合だけ次の elsif へ進み、記述された条件式を評価します。評価した結果が真であればその次に記述されたブロック内の処理を行い if 文を終了します、偽であった場合は次の elsif へ進みます

    if文で複数の条件式を順に評価する(if..elsif..else)
  • Perl - ヒアドキュメント

    << の後に任意の終端識別子を記述すると、次に識別子が出現する位置までをクォートで囲った場合と同様の処理となります。 クォートの種類は、<< の後の識別子を囲ったものの効果が適用されます。囲わない場合はダブルクォートが適用されます。 $s1 = "test"; print <<"TEST_1"; この部分を'ダブルクォート'で囲ったのと 同様の出力となる。 $s1\n TEST_1 print <<'TEST_2'; この部分を"シングルクォート"で囲ったのと 同様の出力となる。 $s1\n TEST_2 print <<TEST_3; クォートで囲わない場合は 'ダブルクォート'で囲ったのと 同様の出力となる。 $s1\n TEST_3

  • 配列と繰り返し処理

    配列と組み合わせて繰り返し処理を行う場合、 for 文または foreach 文を使うことが多いです。 for文と配列の組み合わせ 配列名が @array だった場合、配列の最後の要素のインデックスは $#month に格納されているので、 for 文使って配列の要素に格納されている値を最初から最後まで順に取り出す場合は次のような記述を行います。

    配列と繰り返し処理
  • Perlプログラムでアラートを表示する方法 - OKWAVE

    Perlのif文を使用してフォルダの存在をチェックし、存在しない場合にアラートを表示させる方法について詳しく説明します。 現在、Perlにてチェックプログラム(チェック内容は省かせていただきます)を作っています。 もともとはweb上で「登録」をクリックすると以下のような csh で記述されたcgiが実行され、 ------------------------------ #!/usr/bin/csh echo "Content-type: text/html" echo "" ~中略~ ./既存プログラムA.exe ------------------------------ 最終的に「既存プログラムA.exe」が起動するというような物で、今回この「既存プログラムA.exe」が起動される直前にチェックプログラムを実行するというものです。 前置きはこのような感じで、教えていただきたい内容は、

    Perlプログラムでアラートを表示する方法 - OKWAVE
  • Perlでの複数行コメント

    [Perl] Perlでコメントを入れるには#を使用します。#は行単位でのコメントとなりますので、複数行にまたがるコメントを入れたい場合はperlのPOD機能を使用します。 [行単位のコメント]

  • 第7章 正規表現

    正規表現とは、ある特定の文字列ではなく、文字列の一部をパターン化して表現する手法をいいます。 複数行ある文章の中から文字列を検索する時に、検索したい文字列すべてを指定するのではなく、文字列の任意の一部を置き換え可能な状態にして検索をする場合に正規表現を用います。 たとえば、UNIXやWindowsでは、文字列を検索するときに使用される正規表現として、「*」を任意の文字列(空き文字も含む)に、「?」を任意の1文字として使用することができます。パターンを、app* と表現すると、 apple application appeal などの文字列がマッチすることになります。 この正規表現の方法は、当然ながらプログラム言語ごとに異なりますが、Perlの場合は他の言語に比べて非常に強力な正規表現によるパターンマッチ機能を備えており、より詳細にかつ容易にパターンマッチを行うことができるとされています。

  • 数字を3桁ごとにカンマで区切る - Perlリファレンス

    $num=~s/(\d{1,3})(?=(?:\d{3})+(?!\d))/$1,/g; 正規表現の拡張構文を使って1行でできます。 まず、 (\d{1,3}) が、数字1-3桁にマッチ。 一致した場合は$1はこの部分の数値となる。 (?=(?:\d{3})+(?!\d)) 続く部分は拡張構文なので一致の確認は行うが置換対象にはならない。 拡張構文の中にさらに拡張構文が入ってます。 (?:\d{3})+ 数字3の倍数桁に一致。 (?!\d) 続く文字が数字以外。 例 $num=1234567890; $num=~s/(\d{1,3})(?=(?:\d{3})+(?!\d))/$1,/g; 一番最後の文字が数字以外に一致ですので、末尾のみ一致する。 その前が数字3桁の倍数890、567、234、に一致。 その前の1-3桁の数字は「1」ですので、$1==1。 これで「1」が「1,」に置換される

  • Perl/演算子 - Wikibooks

    演算子とは、1つ以上のオペランドを伴って式を構成する構文要素です。 オペランドの数によって、単項演算子・二項演算子・三項演算子に分類されます。 同じ記号を使っても、単項演算子だったり二項演算子であったりする演算子もあります。 問えば、符号反転-$xと減算$x - $y は、同じ記号 - を使います。 さらに、デクリメント--$x も、同じ記号 - を使います(--で1つのトークンで間に空白などは入れられません)。 また。Perlの演算子は、オペランドの型を演算子の想定する型に強制的に型変換され演算が行われます。 $x + $y # 加算。オペランドが数値でない場合は数値に変換してから加算。 $x . $y # 結合。オペランドが文字列でない場合は文字列に変換してから結合。 $x x $y # 繰返し。左オペランドの文字列とみなし、右オペランドを数値とみなし、その回数だけ繰り返す。 このよう

  • リダイレクト - futomi's CGI Cafe

    CGIにおいて、リダイレクトの使い道はいくつかあります。たとえば、アンケートやメール送信フォームで、送信した後に、「ありがとう」ページを表示するにはどうすればいいでしょう。 一つの手としては、CGIによって「ありがとう」ページを出力させることができます。ただこの方法だと、もし「ありがとう」ページを更新したい場合には、CGIスクリプト自体を書き換えてあげなければいけません。もちろんFrontPageやホームページビルダーのようなホームページ作成ツールを使って書き換えることはできません。もし定期的に更新したい場合などは、非常に手間がかかります。 もう一つの手として、リダイレクトがあるのです。リダイレクトするためには、その「ありがとう」ページを事前に作成しておく必要があります。ただ単に、HTMLファイルを作成すればよいのです。これをサーバにアップロードします。そして、CGI側で、その「ありがとう

  • 引数を指定してサブルーチンを呼び出す

    サブルーチンを呼び出すときに引数を指定することができます。引数として渡された値ははサブルーチンの中で参照することができ、実行する処理の中で利用できます。ここでは Perl のプログラムで引数を指定してサブルーチンを呼び出す方法について解説します。

    引数を指定してサブルーチンを呼び出す
  • 正規表現 - 2部 Perl言語仕様 - [SMART]

    正規表現の概要 正規表現は、Perlの中で最も重宝する機能のひとつです。正規表現にはテキスト処理のための様々な機能があり、文字列の中から特定のパターンを見つけ出したり、置換したりすることができます。 正規表現の基的な使用方法 たとえば、$strという変数に格納したデータの中から、「A」で始まって途中は何があるかわからないが最後が「E」という文字列を探したい場合、次のように記述することで、条件にマッチする文字列を見つけることができます。 $str =~ /A.*E/; 上記では、ドット( . )が改行以外の1文字を表し、アスタリスク( * )がその任意の文字の0回以上の繰り返しを意味します。このように、正規表現において特殊な働きを持った文字を正規表現演算子、またはメタ文字と呼びます。また、=~ はパターン結合演算子と呼ばれ、「左辺の値から右辺の値を検索する」という意味があります。 正規表現

    正規表現 - 2部 Perl言語仕様 - [SMART]
  • PerlによるCSVファイルの高速集計

    はじめに Perlと言えば、いまだにCGIを思い浮かべる人は多いと思います。しかし、Perlは決してそれだけの言語ではなく、その言語仕様はテキストファイルを処理し、集計結果をレポートするのに非常に向いています。特によく利用されるテキストファイルとして、CSV形式が挙げられます。CSVを集計したい場合、Excelに読み込ませて集計関数やマクロを駆使しているという人も多いかと思いますが、Perlを利用することで、高度な集計作業を簡単かつ高速にできます。 稿では、筆者がPerlCSV集計を行う際によく使うノウハウを紹介したいと思います。 対象読者 まだ、PerlCGIと思っている方。 65,536件を超える大量のCSVデータを前に、手も足も出なくなっている方。 必要な環境 テキストエディタ。 Perl 5.8.X。ただし、ほとんどのコードはそれ以下のバージョンでも動きます。 Perlのイン

    PerlによるCSVファイルの高速集計
  • foreach文を使った繰り返し処理

    繰り返し処理の一つである foreach 文はリストに含まれる値を順に取り出して処理する場合に便利です。ここでは Perl における foreach 文を使った繰り返し処理を行う方法について解説します。

    foreach文を使った繰り返し処理
  • Perlで作るCGI講座 - my と local どう違う? - my について - futomi's CGI Cafe

    ここでは、変数の局所化に使う my と local について解説します。どちらも変数を局所化することには違いないのですが、細かな点で違いがあり、これを理解していないと、想定しない結果となってしまいます。しっかりと押さえておきたいポイントです。 局所化とは my について local について ここでは、my について解説します。my は、Per5から実装された関数で、Perl4では使えません。Perl4では local のみが使えましたが、Perl5では、my を使うのが一般的ですので、しっかりと理解してください。 まず、言葉を覚えましょう。my を使って定義された変数は、レキシカルスコープ変数 と呼びます。そして、my を使って変数を宣言することをレキシカルスコープ宣言と呼びます。 宣言の仕方は

  • bayashi.net

    {{tag: go, test, testing, actually }} actually は Go の testing ライブラリです。明示的なインターフェースと一貫性の高いメソッド群、そしてメンテナンスやリファクタリングの際に力を発揮するフェイルレポートを備えています。 [[https://github.com/bayashi/actually ac... つづきを読む

    bayashi.net