Top image

Perl Monk

主にPerlとRaspberryPiの個人的技術研鑽


Perl小ネタ:配列をソートする

2020/09/23 20:00
category:Perl

■配列を数値で昇順ソート

@array = sort { $a <=> $b } @array;

■配列を辞書順で昇順ソート

@array = sort { $a cmp $b } @array;

降順にする場合は$aと$bを入れ替えます。

文字列データを数値でソートしようとするとエラーになります。


Perl小ネタ:配列の特定にある場所のデータを消す

2020/09/21 20:00
category:Perl

先頭や末端は元々用意されているshift unshift pop pushをつかいます。

それではできない場合はspliceを使います。

my @array = qw(a b c);
splice(@array,1,1);

print Dumper @array;

で見ると、こうなっています。

$VAR1 = 'a';

$VAR2 = 'c';

書式は

splice ARRAY, OFFSET, LENGTH, LIST

となっていて、範囲を指定して取得したり、特定の範囲以外を削除もできます。

ちなみにdelete関数は中味は消しますが配列自体は残っています。

delete($array[1]);

print Dumper @array;

$VAR1 = 'a';

$VAR2 = undef;

$VAR3 = 'c';


Perl小ネタ:エラーシグナルを取得する

2020/09/20 20:00
category:Perl

独立したシステムで、エラーも別処理として参照したりするときにたまに使います。

BEGIN {
	$SIG{__WARN__} = sub {
		print $_[0];
	};
}
warn "make warn";

ワーニングのシグナルを受けると、これが実行されるというところまでは何となくわかる。

そしてエラー内容が@_に格納されるらしいが、$_[1]以降にデータが入る事はあるのだろうか。。

$_[0]がなかった場合、warningが発生してさらに呼び出されて無限ループしないか・・・!?って思ったんですが、この中で発生したwarningは除外ぽいです。


Perl小ネタ:配列の中身をすべて削除

2020/09/19 10:00
category:Perl

■配列の中身をすべて消すには以下のように()で引き渡します。

@array = (); 

Perl小ネタ:正規表現でマッチした分割単位をそのまま配列に格納する方法

2019/06/20 20:00
category:Perl

正規表現でマッチしたものを変数にいれる

まず、マッチしたものを変数に代入できるというのがあります。

my $string = '1234567890abcdefg';
my @array = $string =~ /[0-9]+/g;
foreach ( @array ) {
	print "$_\n";
}

出力

1234567890

> read more


シンプルなWEB APIインターフェースをPerlで作る

2019/06/04 19:00
category:Perl

極力シンプルな形で、HTTPを使ったAPIでデータをやりとりをする方法を考えます。

> read more


Perl小ネタ:配列の要素数を取得する

2019/06/03 22:03
category:Perl

$#配列名

で要素数を取得できます。

my @array = (9,8,7);
print $#array;

[出力]:2

1個目は0からになります。

何もない場合は-1になります。

●配列の最後にデータを格納する

$array[$#array+1] = 値;

push(@array,値)	

は同一の処理になります。

●配列の値でなにかしらのループをする

foreach my $value ( @array ) {

print $value;

}

for ( my $i = 0 ; $i <= $#array ; $i++ ) {

print $array[$i];

}

は同じ回数処理が走ります。

●配列のリファレンスに対して取得する場合

my $array_ref;
$array_ref->[0] = 'a';
$array_ref->[1] = 'b';
$array_ref->[2] = 'c';
print $#{$array_ref};
リファレンスにたいしても、同様の手法で取得できます。

僕が未だにPerlを使い続ける理由

2019/05/26 18:05
category:Perl

について。

> read more


ブログ始めました。

2019/05/23 02:02
category:Perl

どこの旧世代のシステムだよというぐらいの見た目ですが、ブログ始めました。

このWEBページは自作Perlプログラムでご提供しております。

> read more


< Prev Page
[ category:Perl ] [ page:2 ]