人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

以下のサブルーチンの細かい動きを終えてください。
オライリー社の「CGIプログラミング」のP131?132に書かれています。

このサブルーチンに渡された全ての行を調べて、
最小のインデントを探し、
全ての行からその最小インデントを取り除いているらしいです。
とくに「sort」の部分がよくわかりません。

sub uni {
local $_ = shift;
my ($indent) = sort /^([ \t]*)\s/gm;
s/^$indent//gm;
return $_
}

よろしくお願いします。

●質問者: the_yakisoba
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CGI Gm sub uni オライリー
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● GEN111
●60ポイント
sub uni {
 local $_ = shift ;
 # $_ に引数を取り込み

 my ($indent) = sort /^([ \t]*)\s/gm ;
 # 正規表現に g 指定子が付いて左辺値(sort の引数)がリストなので
 # カッコにマッチした部分(インデント ?先頭の空白? より一文字少ないもの)をリストにして返す

 # sort はリストを並び換えて返す
 # インデントがスペースだけなら文字数が少ない順番に返す

 # my ($indent) はカッコ付きなのでリスト
 # 中身は $indent ひとつだけなのでリストの先頭 (一番短いもの) を受けとる

 s/^$indent//gm ;
 # 各行の先頭から $indent を削除

 return $_ ;
 # 結果を返す
}
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ