Perl日記

日々の知ったことのメモなどです。Perlは最近やってないです。

2010-04-01から1ヶ月間の記事一覧

引数に同じ変数でインクリメントしたのとしてないのとを入れたときの値

気になったのでやってみた。 #!/usr/local/bin/perl use strict; use warnings; use 5.010; my $i = 1; sub say_arg { say "@_" } say_arg($i, ++$i, $i); say "--------------"; say "\$i => $i"; say "--------------"; say_arg($i, $i++, $i); __END__ 結…

マジックデクリメントって

ないんだ…。 というのも、アルファベット一文字の一個前の文字を知りたい状況になったのだけれど、マジック(マジカル)インクリメントは何かで見て知っていたので、それならと思ってやってみたらあえなく玉砕。 my $char = 'U'; my $prev = --$char; say $pre…

データベーススペシャリストを

受験した。 午前1が21/30、午前2が24/25だった。 でも午後は1・2ともにだめなんだろうなあ。

配列の添え字が偶数の要素だけ取り出す

$array[0], $array[2], $array[4]... my @array = 0 .. 99; my @even = even_elemnt(@array); sub even_element { my $i = 0; return grep ++$i % 2, @_; } Test. use Test::More; my @array = 0 .. 99; my @even = even_element(@array); for my $elm (@eve…

フォームデータ一括受け取り

昔。 my (%in, $buffer); if ($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } elsif ($ENV{'REQUEST_METHOD'} eq 'GET') { $buffer = $ENV{'QUERY_STRING'}; } for my $pair (split(/&/, $buffer)) { my ($name, $va…

続・XSのlooks_like_number()

前回の続き。 ListUtil.xs #if (PERL_VERSION < 8) || (PERL_VERSION == 8 && PERL_SUBVERSION <5) if (SvPOK(sv) || SvPOKp(sv)) { RETVAL = looks_like_number(sv); } else { RETVAL = SvFLAGS(sv) & (SVf_NOK|SVp_NOK|SVf_IOK|SVp_IOK); } #else RETVAL =…

XSのlooks_like_number()

前回の続き。 XSちょっとかじった程度の僕がXSのlooks_like_number()を追ってみたメモ。 ListUtil.xs 初めの方。 MODULE=List::Util PACKAGE=Scalar::Util /* 略 */ int /* 戻り値型 */ looks_like_number(sv) /* 関数名 */ SV *sv /* 引数型 */ PROTOTYPE: …

looks_like_number()返却値の謎

前々回、前回のエントリに引き続き、looks_like_number()の返却値を調べてみた。 use Scalar::Util qw/ looks_like_number /; say looks_like_number(123); #=> 4352 1が出ると思っていたのだけれど。 もう一度perldocしてみる。 The CPAN Search Site - sea…