This page moved.
2008年06月03日06:00 カテゴリLightweight Languages perl - 勝手に添削 - Perl入門#1@ITPro さすがに出典が日経Linux 2003年7月号だけあって、少しトウがたってはいるけど、現在でもわずかな修正で使える記事。さすが川合さんといったところか。 第1回 Perlの文法の基本:ITpro というわけで、この記事の「現代化」Patchを。 全般 use strict;だけではなくuse warnings;も加えましょう。 さらに,調べても分からないことがあれば,メーリング・リストやユーザー・グループ*2に質問してみてもよいでしょう。 blogに書くのもアリです。あと私は使っていないけどIRCとか。 ビルトイン関数は()でくくらない方が視認性が上がります。 before: chomp($sLine); after: chomp $sLine;
下にlibとかつくってそこにおいた自作pmをuseするとき、相対パスで呼び出してしまうと実行ディレクトリが違う場合(cronでまわしたりとか)に都合が悪かったりします。 そこで、以下のようにBEGINブロック内でスクリプト自身のパスをとってきてからuse libとかしてるんですが、このやり方おかしかったりしないんだろうか。もし、もっとこうした方がいいとかあればぜひお教え下さい。 ├ main.pl ├ lib └ Hoge └ Foo.pm#!/usr/bin/perl use strict; use warnings; use File::Basename; my $w_dir; BEGIN { $w_dir = dirname $ENV{_} } use lib "$w_dir/lib"; use Hoge::Foo; my $foo = Hoge::Foo->new("tester0
ディレクトリ指定のスラッシュの有無を統一する Perl コードサンプルです。 使いどころ CGIやその他の環境変数の設定で、処理対象や関連ファイルの保存先ディレクトリを環境変数としてまとめて設定する場合があります。 その後の処理(ファイルを開いたり)では「ディレクトリ名+ファイル名」を文字列として処理することが多いので、ディレクトリ名にスラッシュを付けておくかどうかの規則が必要となります。 以下のコードを通すことで、変数の設定でスラッシュがあっても無くても、どちらかに統一することができます。 Perl コードサンプル #環境変数リスト @mixed = ( './conf/filedir', './result/filedir/', 'http://access.url/result', 'http://access.url/conf/', ); #スラッシュありに統一 @w_sla =
隣のO澤くんが「Perlにデフォルトで入ってるモジュールが何かあるのかわかんないんですよねぇ」とか言ってるから、ワンライナー: # もしModule::CoreListがインストールされてないなら cpan install Module::CoreList perl -MModule::CoreList -e 'print "$_\n" for sort keys %{$Module::CoreList::version{5.008008}} ' これで一発で出るよ! それって % corelist -v 5.008008 The following modules were in perl v5.008008 CORE AnyDBM_File 1.00 Attribute::Handlers 0.78_02 AutoLoader 5.60 AutoSplit 1.04 B 1.09_01
2008年03月30日19:45 カテゴリLightweight Languages一日一行野郎 perl - ワンライナーの書き方入門 まあ、ruby のコマンドラインオプションって、Perl由来ですから。 Rubyでワンライナーを書く方法のまとめ まぁ、Perlもあるしあんまり需要が無いのかも知れませんが。 というわけで、Rubyistにも役立つPerlのワンライナー入門です。 基本中の基本 コマンドとしてのperlは、スイッチがない場合、引数はスクリプト名として扱われます。 % cat hello.pl print "Hello, world!\n"; % perl hello.pl Hello, world! % コマンドライン中の文字列をスクリプトとして解釈させるには、-eを使います。 % perl -e 'print "Hello, World!\n"' Hello, worl
Perlにデフォルトでインストールされているモジュールを表示する 隣のO澤くんが「Perlにデフォルトで入ってるモジュールが何かあるのかわかんないんですよねぇ」とか言ってるから、ワンライナー: # もしModule::CoreListがインストールされてないなら cpan install Module::CoreList perl -MModule::CoreList -e 'print "$_\n" for sort keys %{$Module::CoreList::version{5.008008}} ' これで一発で出るよ! AnyDBM_File Attribute::Handlers AutoLoader AutoSplit B B::Asmdata B::Assembler B::Bblock B::Bytecode B::C B::CC B::Concise B::Deb
問題。 普通に、PerlのCGIスクリプトで system( 'some_command &' ); exit;とか書けば、裏で some_command が実行されつつ、ブラウザ側からはCGI処理が完了したように見えるんじゃね、と思ったが、なぜか some_command の実行終了まで待たされた。 原因。 some_command の標準出力は元のPerlスクリプトの標準出力と一緒にCGIの出力として扱われるので、元のPerlスクリプトが終了してもCGI出力は閉じてない。some_commandの実行終了時に hoge とでも出力したらそれもCGIの出力として扱われてブラウザに出る。 対処。 some_command の標準出力を別の所にリダイレクトしたら、実行終了を待たなくなった。 たぶん標準出力を閉じても同じようにできるんじゃないだろうか。 system( 'some_comman
郵便番号検索などが行えるWebサイトをよく利用します。ただ、毎回Webブラウザで項目を入力して検索するのは面倒なので、スクリプトなどを利用したいと考えています。どのように実現したらよいでしょうか? 一般的なCGIに対しては、Perlスクリプトなどを用いると簡単に検索できます。ここでは、「MACアドレスのベンダーコード検索」サービス用のスクリプトとして、WWW::Mechanizeモジュールを利用したoui-search.plを紹介します(リスト1)。 なおシステムには、PerlおよびWWW::Mechanizeモジュールを事前にインストールしてください。WWW::Mechanizeモジュールは依存するものが複数あるので、CPANモジュールを利用すると簡単に導入できます。 1 #!/usr/bin/perl -w 2 3 use strict; 4 use WWW::Mechanize; 5
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
mod_perl2 (on Apache 2.x)で無理矢理MT(Movable Type)を動かそうとしたり、古いスクリプトをmod_perl2で動かそうとする人たちがいまして。そういうページの中で、mod_perl2はカレントディレクトリをスクリプトのdirに変更しないというのが日本ではなぜか迷信のごとく広まっています。……いやある意味では正しいのですけど。例えばこちらのページでは PerlFixupHandler "sub { \ chdir('/project/sfo/www/www.sfo.jp/lib/mt'); \ return OK; \ }" PerlResponseHandler ModPerl::Registry とやって明示的に chdir しています(別にやり玉に挙げているわけではなくて、どこのサイトを見てもおよそこんな感じです)。そもそもなぜ、ModPerl::
変数の中身を表示してくれるperlのCPANモジュール、Data::Dumperは、UTF8フラグのついているデータがエスケープされて文字化け状態になってしまうため、UTF8で日本語を扱う時に困る。でもそもそもUTF8フラグがついていなければエスケープされることもなくて困らないのはなんで?というわけでソースを読むと Data::Dumper::qquote() というメソッドの中で、文字列をエスケープする条件に my $bytes; { use bytes; $bytes = length } s/([^\x00-\x7f])/'\x{'.sprintf("%x",ord($1)).'}'/ge if $bytes > length; というトリッキーなコードが入っていた。UTF-8フラグがついていると、UTF8の文字列が正しく文字として認識されてlengthがバイト数よりも小さくなるので
File::Typeモジュールを使う。 use strict; use warnings; use Perl6::Say; use File::Type; my ($input_file) = @ARGV; my $ft = File::Type->new; my $type = $ft->checktype_filename($input_file); say $type; このモジュールはファイルの先頭のヘッダみてMIMEtypeを決定しているよう(fileコマンドとかと同じ?)。別に、#!行をみたり、拡張子をみてくれたりはしないので、ソースコードの種類の判定には使えないな。(たいがい、application/octet-streamになる。) 良いのが見つかったらその2へ。
デプロイツール Archer #0 Posted by Gosuke Miyashita Sun, 11 Feb 2007 18:35:29 GMT id:tokuhirom さん作のデプロイツール Archer を最近使い始めたのですが、これがすげーいいっす。 で、この週末は更に便利に使えるように、Archer 用のプラグイン書いたりしてました。 Archer::Plugin::SVN::Log Archer::Plugin::SVN::Diff Archer::Plugin::SVN::Update Archer::Plugin::Rsync Archer::Plugin::Shell global: work_dir: /home/miya/work dest_dir: /home/miya/assurer tasks: init: - module: SVN::Diff - mod
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
2007年01月18日08:00 カテゴリLightweight Languages perl - pargs = xargsモドキ GNUじゃなけりゃ 作ってしまえ xargs. 技術メモ帳 - xargsコマンドを使って指定したコマンドを並列実行させる あまり知られていないが、GNUのxargsコマンドには、 プロセスの最大数を設定できるオプションというのが用意されている。 コレを使って、プロセスを並列実行させてみよう。 OS Xのxargs(1)はgnu版じゃないんだよね。 というわけでperlで即興で作ったのがこちら。 pargs #!/usr/local/bin/perl use strict; use warnings; use Getopt::Std; use POSIX ":sys_wait_h"; our $PPID = $$; our %Opt; getopts "P:
さくらインターネットを利用しており,サーバを丸ごと借り切っていない場合は,ルート権限が無いためCPANを利用してPerlのモジュールをインストールすることができない. ディレクトリをあらかじめ用意 $ mkdir -p ~/local/var/db/pkg CPANに関する設定を編集 $ vi ~/.cpan/CPAN/MyConfig.pm で,いくつかの項目を設定する.mbuildpl_arg 以外は存在するので書き換える ---- 'make_install_arg' => qq[SITEPREFIX=$ENV{HOME}/local], 'makepl_arg' => qq[INSTALLDIRS=site LIB=$ENV{HOME}/local/lib/perl5 PREFIX=$ENV{HOME}/local], 'mbuildpl_arg' => qq[./Build --
2007年01月14日05:30 カテゴリLightweight Languages一日一行野郎 perl - Yet Another 10のUNIX小技 Geekなぺーじ:10のUNIX小技にperlを加えるとさらに幸せになれるというお話。 1.ディレクトリの作成 今時-pをサポートしていないmkdir(1)はないと思いますが、ない場合は perl -MFile::Path -e 'mkpath $_ for @ARGV' path/to/dir more/path/to/dir ... で代用が出来ます。 alias mkpath perl -MFile::Path -e \'mkpath \$_ for @ARGV\' と.bashrcや.cshrcとしておけば、 mkpath path/to/dir more/path/to/dir ... と出来ます。 2. tarの解凍先を指定
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く