タグ

perlに関するiwwのブックマーク (379)

  • 文字列を連結する

    文字列と別の文字列を連結して一つの文字列にする場合、 Perl では文字列と文字列をドット(.)で結びます。ここでは Perl のプログラムで文字列を連結する方法について解説します。

    文字列を連結する
  • Perl講座: ファイル入出力

    ファイルオープンとクローズ- open, close - print, printfでの出力 ファイルテスト演算子 ファイルロック - flock - ファイルオープンとクローズ- open, close - Perlに限らず、一般的にプログラムではファイルからデータを読み込み、 処理をした結果をファイルに出力します。 「繰り返し - while、for -」の ページでも簡単に紹介しましたが、ここではファイルからデータを 読み込むために必要なファイルオープンと、 ファイルをオープンし処理が終了した後に行う ファイルクローズについて説明します。 ファイルからデータを読み込むためには、まずファイルを開かなければいけません。そのためには、openという関数を使います。

  • sleep

    #!/usr/bin/perl use strict; use warnings; foreach (1..60) { print scalar(localtime), "\n"; sleep 1; } #!/usr/bin/perl use strict; use warnings; my $start_file = 'start.dat'; while (not -e $start_file) { sleep 1; } print "処理開始\n";

    sleep
  • if

    iww
    iww 2018/02/07
  • [Perl] Can’t locate File/Tail.pm を解決するの巻

    最近はWindowsサーバのメンテナンスばかりを行っているのですが、今回はFireWallとして利用しているCentOSサーバにて、Perlで動くswatchを起動させようと思った時に遭遇したログを元に、Perlモジュールが不足している場合の必要パッケージ特定方法と解決方法をご紹介します。作業環境はCentOS6.3です。すでにインストールされているPerlモジュール一覧を確認する方法は Perlモジュール確認方法 をご覧ください。 以下が遭遇したログです。今回はswatchの起動が問題になったため、ログは/var/log/swatch/swatch.logにありました。 Can't locate File/Tail.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/v

    [Perl] Can’t locate File/Tail.pm を解決するの巻
    iww
    iww 2018/02/07
  • grep関数 - 特定の条件を満たす配列要素のみ取得 - Perl入門ゼミ

    Perl › 関数 › here 「grep関数」を使用すると配列の中で条件にマッチした要素のみを取り出すことができます。デフォルト引数$_に@arrayの各要素が渡されてきます。条件文を満たした要素のみが@matchedに追加されます。 # 条件にマッチした要素のみを取り出す @matched = grep { 条件文 } @array; サンプル 正規表現にマッチした要素のみを取得するサンプルです。このサンプルでは整数だけを取り出しています。@numsが(1.23, 123, 43)の場合は@matchedは(123, 43)になります。 # 正規表現にマッチした要素のみを取得 my @nums = (1.23, 123, 43); my @matched = grep { /^\d+$/ } @nums; 正規表現でパターンマッチ演算子(=~)を省略するとデフォルト変数$_がパターン

    grep関数 - 特定の条件を満たす配列要素のみ取得 - Perl入門ゼミ
  • 配列を初期化する

    配列を宣言すると配列の要素に値を格納することができるようになりますが、配列の宣言と同時に要素への値の格納をすることができます。宣言と同時に値を格納することを配列の初期化と言ったりします。ここでは Perl で配列の初期化を行う方法方法について解説します。

    配列を初期化する
  • Perlでのファイルロックについて - 小池啓仁 ヒロヒト応援ブログ By はてな

    Perlでのファイルロックでは、普通、flock関数を使用します。 flock関数の第1引数にはファイルハンドルを指定し、第2引数には以下のいずれかの値を指定します。 尚、 LOCK_SHやLOCK_EX等を使用する場合は、『use Fcntl ':flock';』宣言が必要です。 1(LOCK_SH):共有ロック(ブロキングモード) 2(LOCK_EX):排他ロック(ブロキングモード) 5(LOCK_SH | LOCK_NB):共有ロック(ノンブロキングモード) 6(LOCK_EX | LOCK_NB):排他ロック(ノンブロキングモード) 8(LOCK_UN):ロック解除(closeでもロック解除される) 1は、処理がファイルに対して他のプロセスの書込をロックし、処理終了まで他のプロセスを待たせます。 2は、処理がファイルに対して他のプロセスの書込読込をロックし、処理終了まで他の

    Perlでのファイルロックについて - 小池啓仁 ヒロヒト応援ブログ By はてな
  • Perlの組み込み関数 say の翻訳 - perldoc.jp

    Just like print, but implicitly appends a newline at the end of the LIST instead of any value $\ might have. To use FILEHANDLE without a LIST to print the contents of $_ to it, you must use a bareword filehandle like FH, not an indirect one like $fh. print と同様ですが、 $\ の値の代わりに LIST の末尾に 改行が暗黙に追加されます。 $_ の内容を表示するために LIST なしで FILEHANDLE を 使用するには、$fh のような間接ファイルハンドルではなく、FH のような 裸の単語のファイルハンドルを使わなければなりません

    iww
    iww 2017/11/10
    『print と同様ですが、暗黙に改行が追加されます。』
  • NginxでCGIを動かそうと頑張った話 - Qiita

    この記事はnginxアドベントカレンダーの20日の記事です。 Nginx、いいですよね。速くて設定も楽で。 でもCGI使えません。今時CGIなんて使ってんじゃねーよ!という声もごもっともなのですが、用途が極めてニッチなアプリケーションの中には、未だにCGIのものも少なくないのです。その大きな大きな理由が、 Apacheで動いている旧態依然としたレンタルサーバ向けの用途を念頭に置いている というものです。 Why CGI CGIが、FCGIやWSGI等の新しい技術と比較して段違いに優位な点は、FTPでレンタルサーバの然るべき場所に然るべきパーミッションで設置するだけで使えるところです。これは比較的ネットワーク関連の知識がなくても、身内だけで該当ツールを用いて遊べればそれでいい、という人に対しては、敷居を下げる点で優位に働きます。 一方で、SSHも叩けない軟弱なサーバへの設置を良しとしない私の

    NginxでCGIを動かそうと頑張った話 - Qiita
  • Perl IP Messenger

    ipmsg.pl - Perl IP Messenger Perl 5 によるネットワークプログラミングの習作として、題材として手軽な IP Messenger を作成しました。IP Messenger は UDP で通信を行ないます。Perl で実装するなら、Socket パッケージの socket, send, recv を使えば、IP Messenger とのやりとりが実現できます。ここで紹介しているソースリストは、習作としては少々複雑になってしまいましたが、IP Messenger プロトコルのほとんどのコマンドを実行できます。 ここでの UDP による通信を Perl で行なう方法については、以下の文献を参考にしました。 斎藤、小山、前田、布施、「新Perlの国へようこそ」、13.10.2 節「UDP」、サイエンス社, 1996. IP Messenger に関しては「IP Me

  • File::Copy - Copy files or filehandles - Perldoc Browser

    CONTENTS NAME SYNOPSIS DESCRIPTION RETURN NOTES AUTHOR #NAME File::Copy - Copy files or filehandles #SYNOPSIS use File::Copy; copy("sourcefile", "destinationfile") or die "Copy failed: $!"; copy("Copy.pm", \*STDOUT); move("/dev1/sourcefile", "/dev2/destinationfile"); use File::Copy "cp"; my $n = FileHandle->new("/a/file", "r"); cp($n, "x"); #DESCRIPTION The File::Copy module provides two basic fun

    iww
    iww 2017/05/30
    成功したら 1 なので注意する。
  • Wandbox

    iww
    iww 2017/04/24
    ideoneみたいなやつ。 バージョンがやたらめったら細かくてすごい
  • http://www.g-ishihara.com/perl/file07.html

  • ディレクトリ・ファイル一覧の取得方法 - Perlテックラボ - [SMART]

    Perlで任意のディレクトリにあるファイル一覧を取得する際は、いくつかの方法があります。今回はglob()とopendir()で取得する方法をご紹介します。 glob()でファイルの一覧を取得 簡単なのはglob()を使ったファイルの取得方法です。 glog()は カレントディレクトリにあるファイル名やディレクトリ名を取得することができます。 # 引数にアスタリスク( * )を指定すると、. で始まらないすべてのファイル一覧を取得 my @file = glob "*"; print join( "\t", @file ), "\n"; "* .*" . で始まるファイルも対象にする場合は引数に"* .*"を指定 my @file2 = glob "* .*"; print join( "\t", @file2 ), "\n"; glob()の引数に拡張子を指定すると、指定した拡張子のファ

    ディレクトリ・ファイル一覧の取得方法 - Perlテックラボ - [SMART]
  • 第7章 正規表現

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

  • [Perl]連想配列のソート - ソースコードライブラリ

    %nedan = ( "bag", 15000, "cup", 800, "watch", 6000, "tv", 38000, "camera", 25000 ); print "キー(商品名)で並べ替え\n"; foreach(sort keys %nedan){ printf "%6d = %s\n",$nedan{$_},$_; } print "\n値(値段)で並べ替え\n"; foreach(sort {$nedan{$a} <=> $nedan{$b}} keys %nedan){ printf "%+6s = %6d\n",$_,$nedan{$_}; } 連想配列のソートです。keys %nedanで連想配列のキーを配列として受け取ります。 あとはsort関数に渡してやります。キー名のソートの場合は単純にsort keys %nedanでソートされたキー名を得ることができ

  • exists関数:指定したキーがハッシュに存在するかどうか確認する

    指定されたキーがハッシュに存在するかどうか確認します。 パラメータ: EXPR ハッシュの要素 戻り値: 存在する場合は真(true)、そうでなければ偽(false) 1 番目の引数には対象となるハッシュの要素を指定します。ハッシュの要素は $ハッシュ名{キー} で表されます。指定したキーが存在した場合、真(true)が戻り値として返されます。 注意すべき点はキーが存在するかどうかだけを見ている点です。キーに対応する値が未定義値であってもキーが存在すれば真(true)を返します。 具体的には次のように記述します。

    exists関数:指定したキーがハッシュに存在するかどうか確認する
    iww
    iww 2017/03/28
  • return文を使って呼び出し元に処理を返す

    サブルーチンではブロックの最後まで処理が進むと呼び出し元に処理が返りますが、サブルーチン内の任意の位置で return 文を実行するとサブルーチンの呼び出し元に処理を返すことができます。ここでは Perl で return 文を使って呼び出し元に処理を返す方法について解説します。

    return文を使って呼び出し元に処理を返す
    iww
    iww 2017/03/28
  • push関数:配列の最後に要素を追加する

    Perl で用意されている組み込み関数の一つである push 関数の使い方です。 push 関数は対象となる配列の最後に要素を追加します。

    push関数:配列の最後に要素を追加する