HP-UX/perl4のスクリプトをLinux(Red Hat)/perl5に移植する際、system関数でのシステムコマンド実行に問題が発生しています。 HP-UX/perl4 で作成したスクリプトを、Linux(Red Hat)/perl5 へ移植するに当たって、system関数の動作が異なり困っています。 HP-UX では ksh をシェルとして使用していたため、perl からのsysytem関数で実行するsystemコマンドも、kshで動作するものを使っていました。Linuxでもログインシェルをkshに設定しました。 ところが、HP-UXで使っていたprintコマンドが使用できず、以下のエラーメッセージが出ます。 sh: print: command not found シェルはkshを指定していても、perlからsystem関数やバッククウォート`` でシステムコマンドを実行する
あるディレクトリにファイルが置かれたら何かしたい、 みたいにディレクトリを監視して処理を行いたい場合、Linux::Inotify2 が便利ですね。 もちろん、inotify が利用できる環境でしか使えませんが。 下は、ホームディレクトリの”backup”ディレクトリにファイルを置くと"backup_server"にそのファイルをscpします。 watch_and_scp.pl #!/usr/bin/perl use strict; use warnings; use Linux::Inotify2; my $watch_dir = $ENV{HOME} . '/backup'; my $inotify = Linux::Inotify2->new or die $!; $inotify->watch( $watch_dir, IN_CLOSE_WRITE | IN_MOVED_TO, s
2013年02月27日20:45 カテゴリTipsLightweight Languages perl - soloで任意のコマンドを期限付きで排他実行する Perl Cookbook (English, Kindle Ed.) Christiansen / Torkington [邦訳: Perlクックブック] solo という名前の perl script を、App::solo という名でリリースしました。 dankogai's p5-app-solo at master - GitHub プロセス間の期限付き排他ロック - (ひ)メモ プロセス間の排他的実行を制御したい 一定時間経過したら実行できるようにしたい これに対する別解答です。 以下、PODの抄訳。 NAME solo - run only one process up to given timeout. SYNOPSIS
Perl › データベース › here Perlを使ってデータベースは初級者が学ぶには今までは少し敷居の高いものでした。まずSQLの実行環境を構築する必要がありすぐに勉強したいという需要を満たすことはできていませんでした。 ですが現在はこの状況は変わりました。現在ではActivePerlをダウンロードするとDBD::SQLiteと呼ばれるSQLiteを利用するためのモジュールがパッケージングされています。 またデータベースに接続するためのユーザから見たインターフェイス部分にあたるDBIというモジュールもパッケージングされています。 ですのでActivePerlの最新版をダウンロードするだけで何の環境構築も行わないでデータベースを学習し始めることができます。 DBD::SQLiteとDBIがインストールされていることを確認する まずDBD::SQLiteとDBIがインストールされているかど
aerith.mydns.jp is not accessible... Sorry. I do not know why this site is not working. If you know Administrator of this site, please contact directly. You may be able to see it in Google cache. For administrator ... MyDNS.JP did not received IP address from you over One week. Please check your notify system. If you restart notification of IP address, MyDNS.JP will apply your IP address to DNS in
ref:某日記(中期) 複数のファイルの特定文字列を一括変換したい場合、 for i in *; do cat < "$i" | sed 's/AAA/BBB/' > "$i"; doneとすると良さそうに見えるけど、これってポータブルなのかねぇ。 tee を使って標準出力は /dev/null に捨てるとか。 for i in *; do sed 's/AAA/BBB/' < "$i" | tee "$i > /dev/null; done と思ったけど、良く考えるとこれも本質的なところでは変わらない。 Linux だと cat の変わりに perl -ne 'print; sleep 1' とかにしてみると良く分からない挙動になるので*1、まあ、やめておいたほうがよさげ。 GNU の sed だと for i in *; do sed -i -e 's/AAA/BBB/' "$i";
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く