呼び出し方法

	&joinitem('iI')

「i」または「I」「iI」を引数としてサブルーチン joinitem を実行する。
実行結果として @items は $bg に、@pitems は $pbg に連結されます。

配列として展開されているアイテムを、一つの変数に格納するルーチンです。

ソースコードの解説

sub joinitem {
	@items = sort(@items)	if $_[0] =~ /i/ && $def_so;

$def_so が真であれば @items を sort関数 により並び替えます。
引数に「i」が含まれている場合のみ実行します。

	$bg = join(',',@items)   if $_[0] =~ /i/;

@items を join関数 により、「,」をスプリッター(区切り文字)として連結し $bg に代入します。
引数に「i」が含まれている場合のみ実行します。

	@pitems = sort(@pitems)  if $_[0] =~ /I/ && $def_so;

$def_so が真であれば @pitems を sort関数 により並び替えます。
引数に「I」が含まれている場合のみ実行します。

	$pbg = join(',',@pitems) if $_[0] =~ /I/;
}

@pitems を join関数 により、「,」をスプリッターとして連結し $pbg に代入します。
引数に「I」が含まれている場合のみ実行します。

実例

&joinitem('i')

を実行した場合、以下の結果となります。

@items = ('ポテト△00010100Fd', 'パン△00030300Fd');
$bg    = join(',', @items);
$bg    = 'ポテト△00010100Fd,パン△00030300Fd';

キーワード解説

sort関数

  • sort [SUBNAME] LIST
  • sort [BLOCK] LIST
    • SUBNAME … サブルーチンを指定し、その方法で比較を行います。省略可能。
    • BLOCK … 比較演算子を指定し、その方法で比較を行います。省略可能。
    • LIST … 並び替えを行うリスト値。

引数により指定された方法でLISTを並べ替えます。
SUBNAME,BLOCKを省略すれば標準の文字列比較を行い、SUBNAMEは変数も指定可能。

# 文字の順
@array = sort @array;
# 文字の逆順
@array = sort [$b cmp $a] @array;
# 数値の昇順
@array = sort [$a <=> $b] @array;
# 数値の降順
@array = sort [$b <=> $a] @array;

省略しますが、上の式での $a $b は明示的に宣言するべきスカラ変数ではありません。

join関数

  • join(/PATTERN/, LIST)
    • PATTERN … スプリッター、区切り文字。省略可能。
    • LIST … 連結を行うリスト値。

LISTをスプリッターPATTERNで連結し、ひとつの文字列にまとめて返す。

関連項目

  • コラム
  • コラム/アイテム消失等の原因と対策
  • splititem

コメント

コメントはありません。 Comments/リファレンスマニュアル/サブルーチン/joinitem?

お名前:

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-07-29 (日) 18:38:21 (142d)