ラベル Perl の投稿を表示しています。 すべての投稿を表示
ラベル Perl の投稿を表示しています。 すべての投稿を表示

2009/09/03

perl 配列 uniq

いまだに、使い捨てスクリプトを書こうとすると
Perl で書き始めていることがあります
何ででしょう、不思議です
何とかの魂なんでしょうか

でも、たまーに使うので色々忘れていまして
「配列の成分を unique にするのって? set ないしな」と
だったら最初から Python でも使っとけよって話なんですが
ググりました

配列(リスト)から重複を取り除く
なるほど! 一旦 hash の key として全部入れてしまえと
何となく富豪的!!

パッケージ: libarray-unique-perl (0.08-1)
それ用に module も作られてるらしいです
CPAN なくして Perl なし、ですね

ちなみに、array の要素数の数え方も調べたんですが
(それすら忘れてるならもぉ Perl を使うなと)
$#array とか使いたくないなーと思っていたら
scalar context にしたら成分数出してくれるんですね。
scalar keys %hash
とかすると %hash の要素数に
変態だなぁ、Perl、かわいい

2009/04/17

"配列からハッシュを"

配列からハッシュを作りたいと思いました、Ruby で
そんなことは検索しなくても本家のドキュメント見ればいいんだな
ってのが結論でした

Ruby だったら Hash - Rubyリファレンスマニュアル
{"one"=>2, "two"=>3}
Hash["one", 2, "two", 3]
Hash[*[["one", 2], ["two", 3]].flatten]
Hash[*["one", "two"].zip([2, 3]).flatten]

* とか使わないとなのね

Python だったら 6. Built-in Types — Python v2.6.2 documentation
{"one": 2, "two": 3}
dict(one=2, two=3)
dict((('one', 2), ('two', 3)))
dict(zip(('one', 'two'), (2, 3)))

ん〜、ちょっと素敵

Perl だったら、ん〜、Perl 分からないから対応したものが書けない
でも、 確かに
@hash{("one", "two")} = (2, 3);

はちょっと格好いいかなぁ、これ、無名でもできるんでしょうか??