× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
警告を出すには
- 実行時引数で指定する場合 $ perl -w test.pl - コードに埋め込む方法 #! /usr/bin/perl -w Unix以外なら、パスを書く必要がないので #!perl -w - プラグマを使う方法(Perl5.6以降) use warnings; より詳しいメッセージが見たいときは use diagnostics; |
リャマ本を読んで知ったことをつらつらと。
数値は内部ですべて倍精度浮動小数点数で扱われる。 その型は、PerlをコンパイルしたCのコンパイラのdouble型。 頭に0をつけると8進数、 0xだと16進数、 0bだと2進数。このあたりはCと同じ。 アンダースコアをカンマ代わりに入れられる。 バイナリデータも文字列として扱える。なぜならPerlは文字列にあらゆる文字が使えるから。そこに「組み込まれた制限は存在しない」。 シングルクォート文字列は、文字列をそのまま出す。例外はシングルクォート自身とバックスラッシュのみで、それらは2つ続けて書くことで表す。 ダブルクォート文字列は、バックスラッシュがエスケープになり、また変数展開が行われる。$の前にバックスラッシュをつけると展開されない。 @の前にもつけておく。でないと配列変数と見なそうとして警告が出る。 また、配列の添字と思われないように、[の前にもつけておく。 文字列の足し算はドット。+ ではない。型がないので、数値としての加算なのか文字列としての加算なのかを区別するために演算子が別になっていると思われる。 小文字のxだと文字列の乗算(文字列の繰り返し)。"a" x 3 が "aaa"になる。 文字列の比較演算子は eq, ne, lt, le, gt, ge, を使う。>や==を使うと、文字列を数値に変換して比較した結果を出す。このとき警告が出る(use warnings;のとき)。 末尾の改行を削除するには chomp($text); chomp $text; #でもいい chomp($text = 末尾以外の改行は削除しない。 未初期化変数には undef が格納されている。 これは数値とも文字列とも違うスカラー値であるが、数値では0、文字列では空文字列として振る舞う。初期化せずに使える(それがPerlのプラクティスとしてどうなのかは知らない) defined関数を使うとundefかどうか判別できる。 |
入力引数は
<> で表せる。これは、 を省略したもの。 入力引数がファイル名であれば、<> はそのファイルの中身になる。 以下のようにプログラミングし、
以下のコマンドで実行すると、data.txtの中身が出力される。 % perl test.pl data.txt ファイルを開くには
INFILEがファイルハンドル。 "<***" で入力とするファイル名を指定。">***"だと書き込み、">>***"だと追加書き込み。 使うときは とする。各行を表示するには
となる。 |
MacでPerlプログラミング。
必要なものは全部入っている。 例えば、ファイル名test.plとして以下のようなPerl 文を書いたら、
コンソールから % perl test.pl でもう実行できる モジュールの追加(CPAN) 解説ページ http://y-kit.jp/saba/xp/cpan.htm ==コマンド - プロンプトを出す # perl -MCPAN -e shell - インストールする cpan> install [モジュール名] - 設定をみる cpan> o conf モジュールを使うには、以下のように書く use Module1; 同一フォルダ内にModule1.pm という名前でモジュールファイルがある。 カレントにあるsubというフォルダの中にある場合は、 use sub::Module1; とすればよい。 では全然別の場所にあるモジュールの場合は? @INC 変数にあるフォルダが対象となっている 例えばこんな感じになる
参考 http://pp-perl.blogspot.com/2007/06/cpan.html CPANで install JSON ってやったけど、失敗する どうやら、makeが入っていないかららしい /usr/bin/make というのが確かにない。 調べてみると、XCodeをインストールしたらmakeも同時にインストールされるらしい。 が、XCode4入れたのに入ってないぞ・・・ どうしよう。 単独でインストールってできないのか。 調べても出てこない。 Leopard時代なら、インストールディスクに入っているようだけど、Lionでそれをやるってどうなのか。 とはいえ、結局Leopard時代のMacbookに入ってたmakeをコピーして持ってきてみる。 makeは別名(リンク)で、本名はgnumakeだった。 /usr/bin には普通のユーザじゃコピーできないようなので、suで入ってみる。 macコンソールでsuになって入るには http://okwave.jp/qa/q616749.html % sudo passwd root これでパスワードを設定してから % su で入る。 su のホームディレクトリ は/var/rootなので、普通のユーザのホームディレクトリにいくには /User/***/ とする。 で、コピーした。 だけどやっぱりこれじゃダメのようだ。 使い方とか書いてあるページ http://poccori.com/blog/wp/archives/90 モジュールがインストールされているか調べる $ perldoc モジュール名 モジュールがインストールされているパスを得る $ perldoc -ml モジュール名 特定のモジュールのおいてある場所 find `perl -e 'print "@INC"'` -name '***.pm' -print |
| ホーム |
|