タグ

perlとCPANに関するpero_0104のブックマーク (18)

  • 実行されている Perl スクリプトの絶対パスを取得する方法が知りたいです。…

    実行されている Perl スクリプトの絶対パスを取得する方法が知りたいです。 __FILE__ でファイル名を取得できることは知っているのですが、取得したファイル名を探す処理を入れるべきなのか、CPAN のモジュールですぐに解決できるのか見当がつきません。 ググッては見たのですが、該当する結果が得られませんでした。

    pero_0104
    pero_0104 2016/12/22
    “実パスを表示”
  • 実行ファイルのフルパスの取得 - Shohei Yoshida's Diary

    会社の人に聞かれて強引な方法を提示してしまったで、 普通にできるだろってことで調べてみた。 Perl, シェルスクリプトどちらでも $0で実行ファイル名が 取得できます。それをフルパスにできればよいというわけです。 まあ basenameとか dirnameがあるんだったら abspathとかが あるはずだって思って補完で出てくるかなって思ったんですが、 ありませんでした。basenameの manpageを見ると readlinkという のが SEE ALSOにあります。で、これを調べてみると以下の通りで フルパスが取得できます. % readlink -f ファイル名しかし説明を読むとシンボリックリンクにコマンドみたいなので 使い方があってるのかが微妙ですね。さらに調べてみると, realpath というコマンドがあって, 絶対パスを表示させる専門みたいです. % realpath フ

    実行ファイルのフルパスの取得 - Shohei Yoshida's Diary
  • Time::Piece - 日付・時刻を扱う新しい方法 - Perl入門ゼミ

    Perl › モジュール › here Perlの5.10からTime::Pieceと呼ばれる時刻を便利に扱うためのモジュールが標準モジュールに加わりました。Perlの5.10以上を使用している場合はTime::Pieceモジュールを日付と時刻を扱いたい場合に利用すると便利です。 従来のPerlでは日付や時刻を直感的に扱う手段が標準モジュールにはありませんでした。日付や時刻を扱うためには少し面倒な作業が必要でした。Time::Pieceは日付と時刻の直感的な操作を提供します。また日付・時刻の書式化の機能や解析する機能も備えます。 Perlには実質的に日付を扱うモジュールのスタンダードといえるDateTimeというモジュールがあります。ただしこのモジュールは標準モジュールではなくCPANからインストールする必要があります。また巨大なモジュールですのでモジュールを読み込む時間が非常にかかります

    Time::Piece - 日付・時刻を扱う新しい方法 - Perl入門ゼミ
  • ちゃんとconfigファイルを作らないと死ねる→PerlならConfig::Simpleで生きていける - oranie's blog

    [追記] ちょっとconfigの記述に間違い見つけたので修正。 しょぼいメモです。 「しょぼいバッチ処理だからDB接続用のパラメータとか適当に書いておくか( ´ー`)y-~」 → 「こういう処理も足しておくか(´∀`)」「段々長くなってきたからpmファイルで分割するか(`・ω・)」 →何度か繰り返す 気づいたら全部で使う設定値を色んなファイルに書いている>< という事は僕みたいな底辺だと良くやる訳ですよ。で、configファイル作らなきゃってやろうとしたんですが、 ばばーって our $database = "hogehoge"; our $user = "fugafuga"; our $pass = "mogamoga"; って書いてrequireで読み込もうとしたりで良いかな?って思ったんですけど、なんかグローバル変数とか使うのやじゃないですか。 なんか使ったら「プークスクス」ってされ

    ちゃんとconfigファイルを作らないと死ねる→PerlならConfig::Simpleで生きていける - oranie's blog
  • Log::MinimalでPerlのログ出力してみた - Qiita

    use Log::Minimal; # デバッグを出力する場合:1 $ENV{LM_DEBUG} = 1; debugf( 'デバッグレベル出力される.' ); # $ENV{LM_DEBUG} がtrueの場合出力される infof( 'インフォレベルが出力される.' ); warnf( 'ワーニングレベルが出力される.' ); critf( 'クリティカルレベルが出力される.' ); # フルスタックトレースをする場合 debugff( 'デバッグレベル出力される.' ); # $ENV{LM_DEBUG} がtrueの場合出力される infoff( 'インフォレベルが出力される.' ); warnff( 'ワーニングレベルが出力される.' ); critff( 'クリティカルレベルが出力される.' ); # パラメータを設定する場合 debugf( 'This is %s', 'de

    Log::MinimalでPerlのログ出力してみた - Qiita
    pero_0104
    pero_0104 2016/05/19
    めちゃ便利そうーー使うなっていわれたから頭にだけいれとこ
  • DBD::Oracle に激遅のコードが混在している件について

    えーっと、ここ数日やっている DBIx::Class 関連なんですが、DBIx::Class::Schema::Loader::Oracle を作ってみたものの、Oracle の場合、なぜか _load_relationships が異常に遅いんですよ。でかなり深追いしてみました。 DBIx::Class::Schema::Loader::Base->_load_relationships あたりが遅いのでメソッドコールを深追い ↓ DBIx::Class::Storage::DBI->columns_info_for の $dbh->column_info そのものが遅いことを突き止める。 eval { my $sth = $dbh->column_info( undef, undef, $table, '%' ); $sth->execute(); while ( my $info =

  • SQL::Abstract - Perlのデータ構造からSQL文を生成する - perldoc.jp

    名前¶ SQL::Abstract - Perlのデータ構造からSQL文を生成する 概要¶ use SQL::Abstract; my $sql = SQL::Abstract->new; my($stmt, @bind) = $sql->select($table, \@fields, \%where, \@order); my($stmt, @bind) = $sql->insert($table, \%fieldvals || \@values); my($stmt, @bind) = $sql->update($table, \%fieldvals, \%where); my($stmt, @bind) = $sql->delete($table, \%where); # それから、これらをDBIステートメントで使う my $sth = $dbh->prepare($stmt);

  • Module::Refresh とモジュールのダイナミックロードの相性 - daily dayflower

    以前(⇒【永続化Perlでモジュールの再読み込み ⇒ Module::Refresh - daily dayflower】)の積み残し課題です。 main.cgi が MyApp::Runner を呼び,MyApp::Runner が MyApp::App をダイナミックロードして実行し,戻り値を表示する CGI です。 CGI は #!/usr/bin/perl use strict; use Module::Refresh; Module::Refresh->refresh(); use MyApp::Runner; MyApp::Runner->run('MyApp::App'); ローダクラスは package MyApp::Runner; use strict; sub load_module { my ($class, $target) = @_; eval "require

    Module::Refresh とモジュールのダイナミックロードの相性 - daily dayflower
    pero_0104
    pero_0104 2016/04/14
    Module::Refresh 一度requireしたやつをリフレッシュできる
  • CPAN を使い Perl モジュールをインストールする|perl|@OMAKASE

    ※追記2010-03-28 この記事は何年も前に書いたものです。現在はまったく参考になりません。今からCPANモジュールをインストールしようとしている方はmiyagawaさん作 App::cpanminus を使うと幸せになれます。 cpanmの記事はココで書いてます。参考になれば・・ CPAN って何? 一言で言えば perl module をインストールするためのモジュールなのです。 CPAN.pm を使うと perl モジュールのインストールが驚くほど簡単になります。ただし初めて CPAN を使用する場合には以下の要領で設定が必要な場合があります。#ほとんどの部分は [Enter] を押すだけなんですが... CPAN の初期設定 ※全ての作業は root で実行 [root@celeron2 /root]# perl -MCPAN -e shell /usr/lib/perl5/5

  • CPANからJSON::XSをインストールしてみる - Lllocity::Memo

    Perlが好きなので今後CPANからモジュールをインストールすることがあるだろなぁと思ったので、試しにJSONのエンコード/デコードの優れもの、JSON::XSをインストールしてみます。 インストール(一回目) $ sudo cpan JSON::XS すると、 Warning (maybe harmless): 'YAML' not installed. と言われ、インストールできなかった。YAMLも必要なのかな。 インストール(二回目) $ sudo cpan YAML JSON::XS としてみると、 /bin/sh: cc: not found と言われ、インストールできなかった。そっかXSだからコンパイルしてるんだな。 インストール(三回目) まずはgccをインストールしておく。 $ sudo apt-get install gcc これでgccとccが入ります。 $ which

    CPANからJSON::XSをインストールしてみる - Lllocity::Memo
  • Config::Simple - 簡単な設定ファイルクラス - perldoc.jp

    名前¶ Config::Simple - 簡単な設定ファイルクラス 概要¶ use Config::Simple; # --- 簡単な使い方。設定ファイルをハッシュに読み込みます: Config::Simple->import_from('app.ini', \%Config); # --- オブジェクト指向インターフェース: $cfg = new Config::Simple('app.ini'); # 値へアクセスする: $user = $cfg->param('User'); # 値をハッシュとして得る: %Config = $cfg->vars(); # 文字列で値を更新する: $cfg->param('User', 'sherzodR'); # 配列で値を更新する: $cfg->param('Users', ['sherzodR', 'geek', 'merlyn']); # i

  • 【expect】会話形式のコマンドを自動実行する。(ライブラリ編) | Tricorn Tech Labs

    メタルラックを組み立てたり整理整頓にはまってしまったykarinoです。 今回は前回に引き続いて、Expect的なライブラリを軽く触ってみました。 実際に、Perlモジュールのexpect.pmを使用して、sftpでデータをアップロードするサンプルソースを紹介します。 ※事前にExpectモジュールとIO::Sttyモジュールをインストールしてください。 サンプルソース【expect.pl】 #!/usr/bin/perl -w # Expectモジュールを読み込む。 use Expect; # タイムアウト時間指定 $timeout = 5; # ユーザ名指定 $user = '【ユーザ名】'; # パスワード指定 $pass = '【パスワード】'; # ホスト名指定 $host = '【ホスト名】'; # アップロード元のPATH $LocalPath = '【アップロード元のPAT

    【expect】会話形式のコマンドを自動実行する。(ライブラリ編) | Tricorn Tech Labs
  • Expect.pm - Expect for Perl - metacpan.org

    NAME Expect.pm - Expect for Perl VERSION 1.15 SYNOPSIS use Expect; # create an Expect object by spawning another process my $exp = Expect->spawn($command, @params) or die "Cannot spawn $command: $!\n"; # or by using an already opened filehandle my $exp = Expect->exp_init(\*FILEHANDLE); # if you prefer the OO mindset: my $exp = new Expect; $exp->raw_pty(1); $exp->spawn($command, @parameters) or die

  • SQL::Makerで動的に SQLを生成する - Articles Advent Calendar 2010 Hacker

    どうもこんにちは。hacker track がやる気なさすぎるのでもう一回かくよ!というわけで tokuhirom ですこんにちは。こんにちは。 さて、最近つくった SQL::Maker というモジュールについて紹介します。SQL::Maker は、要は SQL::Abstract みたいなやつです。じゃあなんで SQL::Abstract じゃなくて SQL::Maker なの?ってことになるわけですが、 SQL::Abstract は実績があるし、非常に便利なんですが、いかんせんコードがまじよみづらいっていうかこれよむの無理じゃね!!ってことをおもうので、あたらしくつくったという次第。 また、SQL::Maker は method chain で SELECT 文を構築する機能もついてます。あらべんり。こんなかんじ↓↓ my $sql = SQL::Maker::Select−>new

    SQL::Makerで動的に SQLを生成する - Articles Advent Calendar 2010 Hacker
  • perl/perl-Expect - # cat /var/log/stereocat | tail -n3

    目的 やること : perl-expectを使ったCisco機器操作の自動化 自動ログイン コマンド実行の自動化(及びログ取得) コマンド出力の加工 参照 : Expect.pm - Expect for Perl - search.cpan.org ExpectとかPerl-Expectについてのまとまった資料ってあんまりないんだよな。みんなそれなりに使ってそうなんだが。 準備 テスト用ダミー端末 : 手元にCiscoルータがあるからそれ使えばいいんだけど、機械がないとテストができないというのも面倒なのでダミーを作ってみた。Cisco ぽいプロンプトとメッセージを返すだけの適当なプログラム……なのだが、これ作るのが結構面倒だった。コマンドのマッチングは適当。ワードごとのマッチングやりゃいいんだけど、面倒だし。今回は login (login localではなく)かつ、Enable Sec

    perl/perl-Expect - # cat /var/log/stereocat | tail -n3
  • Perl で Expect - 理系学生日記

    対話的なプログラムを自動化するのに expect があるという話を前に同僚から聞いていましたが、Perl でやるとどうなるんだろうとか思ってると、そのまま Expect っていうモジュールがあった。 インタラクティブなコマンドのクソ面白くない例としてパスワード変更がありますが、それを Expect.pm で書くとたぶんこんな感じになるんだと思います。 #!/usr/bin/perl use strict; use warnings; use Expect; my $cmd = 'passwd'; my $oldpass = 'aaaa'; my $newpass = 'bbbb'; my $expect = Expect->new; $expect->log_stdout(0); # hide stdout of 'passwd' $expect->log_file('./passwd.l

    Perl で Expect - 理系学生日記
  • use Encode; - 今日のCPANモジュール(跡地)

    宣伝と注意書き このサイトが元になったCPANモジュールガイドというを書きました。 書でも取り上げています。 このページにあることは間違いではないのですが、「UTF8フラグ」「Unicode」「文字列」「バイト列」このあたりについて、より正確で簡潔な解説を心がけました。また、全編を通して日語を扱う方法もふれています。 2008-06-11 use Encode; 日語/フラグ周りでつまづくのはありがちなので落ち込む必要はないです。この連載も「そろそろ日語の話題か・・」と思ったのですが、まとめるのがめんどうでテラ放置してました。 すでにたくさんの資料が出回っていることを踏まえ違う切り口でまとめてみます(少々乱暴な部分もあるので、後で ADVANCED も見て下さい)。 まず、以下はそれぞれだいたい同じものと考えていいです。 A: 文字列、 ユニコード(Unicode)、 utf8フ

  • pelletkachels | blog over bedrijven en feitjes en de pelletkachel

    Welkom bij Pelletkachels.nl, jouw ultieme bron voor alles wat met pelletkachels te maken heeft! Maar we zijn meer dan alleen een platform voor het bespreken van warmtebronnen. Bij Pelletkachels.nl geloven we dat het delen van kennis en ervaringen over bedrijven en gebeurtenissen ook essentieel is voor het creëren van een betrokken en geïnformeerde gemeenschap. In dit blog duiken we dieper in de we

    pelletkachels | blog over bedrijven en feitjes en de pelletkachel
  • 1