perl

変数を吸い込んで関数は動くのだけれど読みにくいです

perlを書くけど会社の先人たちのコードに四苦八苦しています。 #例1 #! /usr/bin/env perl my $val = 1; hoge(); $val = 2; hoge(); sub hoge { print $val . "\n"; } 関数内で引数取り込まないのやめてほしい。 呼び出し時のスコープの変数をもって関数は…

memo:perlってこんなにかっこよいのですね。無名配列とかリテラルとかもちろんgrep/mapも。

どう間違ってもrubyになりそうにはないので急いでperl復習してる。 http://d.hatena.ne.jp/perlcodesample/ が素敵。 久々のperlの印象は良好デス。 perlがクソだ、とか誰が言ったんだっけ? my $arr_moto = [1 .. 10]; #まずこの時点でかっこよい。 foreach …

memo:2010/1/6時点のmacportsのPerlでplaggerのインストールの記録

plagger入れると対外のモジュールが入るので環境構築に便利です。 cpanで入れます。 perlには気を使わなかったせいでいろんなところに好き勝手にいろんなperlが存在する 私のmacです。パスにきていたのはmacportsのperl5.8.9っぽい以下、手順 1.cpan -fi Pla…

ハッシュ内配列内の任意のフィールドの値でハッシュをソートする

久しぶりにperl書いた。 {なのか[なのか(なのかわからん。 あとおもわず @array.pop とか書いてしまう。ruby病。行末の;もよく飛ばす。 で、題名の配列をvalueに持つハッシュを配列のなかの任意のフィールドの値でソートしたいなぁ、という件。 この辺訳わか…

Perlの依存関係しんどいとき

もうPlagger入れちゃえば大概のメインな物は入ると言うことに気付いた。 環境新しくしたときとか と思ったけどPlagger自体が結構アレだからなぁ POEがfetchできずにインスコできず したいよ非同期! wgetしてきて手動->backend.pm無いよ->CPANでインスココレ…

もうだめ分からん。教えてエロい人!

もうだめだ。。。わからん。 なんで意図した結果がでないのだろう。。 どこがおかしいんだ。。。 変数ansにgojo関数の戻り値nを代入したいのです。 でも変な数字が代入されるみたいなんです。なにが悪いんだ。。。 死にたいわ! #include <stdio.h> //ユークリッド互除</stdio.h>…

ActivePerlのバージョン上げ

5.10 大丈夫かな。。。大丈夫だろ。Linuxは5.10で問題ないし。

馬鹿なので循環配列

脳みそが回らん。疲れてるのか? print <<EOT; 循環配列 5要素の配列 画面に出力する?番目と 実際の要素ポイントが違うから 混乱しますた。 初歩。才能ないです。 知ってる。 EOT my @a = (1,2,3,4,5); print @a,"\n"; while(1){ chomp(my $a = <>); print $a,"番目にアクセス=> "; print $a[($a-1) % ($#a+1)],"\n"; #1,2,3,4,5,6,7,8,9, $a #0,1,2,3,4,5,6,7,8, $a-1 #5,5,5,5,5,5,5,5,5, $#ar+1 #0,1,2,…</eot;>

ハッシュ内配列にpushする

いや、分かるのだよ?使うのだよ?でも気持ち悪い、ニヤニヤしてしまう。 #リファレンスメモ #配列 #無名配列を格納(リファレンスの作成) my $arr = []; #無名配列にpush push @{$arr},(1,2,3); #参照値を出力 print $arr,"\t"; print \@{$arr},"\n";#\でリフ…

局所化ourとlocal/my

グローバルスコープとブロックレベルのスコープを切り替えるとか 知りませんですた。 our $age =18;#myでもOK sub ageage{ my $age =23;#localでもOK return $age; } print &ageage;#=>23 print $age;#=>18 print <

サブルーチンを呼び出すけど戻り値はいらなくて、うまく動いてたら所要の処理をする

賢いね。。。 if(()=function()){.....}

汎用リネーマー(diagnostics)

ラリーおじさんが作ったらしい。怖いからちょっと確認する。 #! /usr/bin/perl use strict; use Fcntl; #evalの対象を読み込み格納 my $oparate = shift or die "引数の一個目をevalします、2つめの引数を@ARGVで読み対象リストにします"; #ログファイルの用…

`pwd`からディレクトリを開けるところでイラっときた

要するにこういうこと chomp(my $path = `pwd`); opendir my $dirh,$path or die; 環境独自(winXP_cygwin_bash)なのかは知らんけどpwdの出力には改行らしきものが含まれていて chompしないと死なれます。 雨ですね。

プロトタイプ

#! /usr/bin/perl -w use strict; use Carp; print <<EOT; プロトタイプもよくわからん。 少しはまった EOT #普通の定義 sub test{ print shift,"\t"; print shift,"\n"; } #定義 sub proto($$){ print shift,"\t"; print shift,"\n"; } #どうなの? #普通のに引数不足で投げてみる &test('proto');#=>shiftできねぇよ!と叱られる、意図通り #引数不足でプロトタイプ形式に投げてみる &proto('proto');#=>shif…</eot;>

リカーシブ!/ついでにリファレンス渡しの練習

なんか自分のやってることのレベルが低すぎて嫌になるけど諦めない。 #! /usr/bin/perl -w use strict; use Carp; print <

文字エンコードではまりまくり

はてダのバックアップをタグで解析してDBに投げる途上で はまった。 正直さっぱりからん。日本語を含む正規表現を適用したいのだけれど。。 スクリプトはshiftjis、対象ファイルはunicode。 push(@list,$str =~/日本語を含むパターン/sg); ってところを解決すれ…

名無し配列コンストラクタをデリファレンスして配列に戻して非破壊にうにゃうにゃする

@hakaigo = mapとか{ うにゅ~} @{[@array]}; @hakaigo = grepとか{うにゅうにゅー} eval {@array};

/pattern/../pattern/

べんりかもなぁ。。 #こういうファイルを入れると =pod this is 1 and next this is 2 and next this is 3 and next this is 4 and next this is 5 and next this is 6 and next this is 7 and next this is end and next this is after 1 this is after 2 =…

ハッシュを値でソートする

さくらにさくらんぼがなっていました。 近所のおばさま方が群がっていたので混じって食しました。 酸っぱくて苦かったです。 print <<EOT; ハッシュの値でソートする 名前 => 点数 とかのハッシュでベスト3を出すとか もっとイイ方法がある気がする EOT my %hash = ( 'aa' => 10, 'cc' => 20, 'bb' => </eot;>…

性的に

やっとリファレンスにたどりついた リファレンスとCのポインタの部分を取っ替えひっかえ読んでたらなんかうれしくなった。 #悶々。1919なら2828になるだろjk $woman = [1,9,1,9]; print @{$man} = map{($_ > 5) ? $_ - 1:$_ + 1 } @{$woman};

PerlのCGI

1.WIN-WinApache2.2+CygwinPerl5.8+うごかねぇ。。。"インタナル鯖えら" 2.Fedora8-Apache utf-8にすると動くけどローカルからのみ。ネット越不可。Apacheエラーlogに"ぱーみっしょんでないど" 1.については「apatchがwin-apacheだからperlのパスに到達でき…

Perlの今日

#初歩の初歩・・・orz #foreach がよくわかってない。 #$ARGVは大文字のみ #初期化関係のPerlの仕様が気持ち悪い今日この頃 ecripseキーバインド追加 c-m で行コピー c-dで行を上に選択