![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
自作の掲示板を作ろうと思い、perlの勉強をしている者です。人様の作ったスクリプトを解析しています。以下のスクリプトはライブラリに記述されていたものです。
sub tttt {
my @out = @_;
for (@out) {
s/^\s+//;
s/\s+$//;
}
return wantarray ? @out : $out[0];
このスクリプトなんですが、 s/^\s+//; の部分の「+」と s/\s+$//; の部分の「+$」、 また「return wantarray~」 の三つの部分のスクリプトが、どういった働きをしているの分かりません。専門書やウェブ上のリファレンスも色々調べたのですが・・。
分かる方いらっしゃいましたらご教授下さると幸いです。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
まず前2つの「+」は,正規表現における,「直前の表現を一回以上繰り返し」をあらわします.
「\s」は空白文字一文字を表す正規表現ですので,「\s+」は,「一文字以上の空白文字」になります.
次に,最初の「^」と2番目の「$」は,その正規表現がどこに現れるかを示す記号です.それぞれ,先頭と最後尾にあることを示します.
したがって,「^\s+」は,「最初に空白が一文字以上ある文字列」に,
「\s+$」は「行末に空白が一文字以上ある文字列」にヒットします.
置換構文sはご存知なんですかね.すなわち,この2文で,行の最初と最後の空白を消しているんです.
次に, wantarray ですが,
http://www2u.biglobe.ne.jp/~MAS/perl/ref/wantarr …
によると,このサブルーチンttttを呼び出すときに,何を返り値にしているかで真偽が決まる関数です.
呼び出す時に配列を希望していたら @out 全体を,変数を希望していたら $out[0]だけを返します.
とても分かりやすい説明ありがとうございます。
仰るとおり置換構文sについては事前に調べがついておりました。本当にありがとうございました。助かりました。
No.2
- 回答日時:
既に的確な回答が出ていますので、リファレンス本をお薦めしておきます。
unicode や 標準モジュールに関する事以外であればだいたい間に合うと思います。参考URL:http://www.7andy.jp/books/detail?accd=30527064
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- 英語 home where you've rented one out for a week? 4 2022/08/06 09:13
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- 洋楽 killer Queenの歌詞 3 2023/07/17 16:47
- 英語 英文についての質問です。 I love my home with a ferocity totall 1 2023/05/11 13:37
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- 医学 二次医療圏の人口分布 1 2023/05/10 11:37
- その他(プログラミング・Web制作) awkのtoupper() 1 2022/10/21 20:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームから送られてきた文字...
-
何時間後を求める。
-
例外処理のフローチャートの記...
-
ユーザー定義関数に#NAME?が返...
-
モジュールとクラスの違いって...
-
「デバイスは PRN を初期化でき...
-
エクセルVBAでシートモジュール...
-
現在アクティブなフォーム名を...
-
VBAでoutlook365が起動しません。
-
VBSがコンパイルエラーになりま...
-
VBAで旧字体を異字体に一括で変...
-
VBAのバージョン管理
-
モジュールとは何ですか
-
NET::POP3の代用できるスクリプト
-
perlスクリプトのブラウザURLか...
-
モジュールからフォームのボタ...
-
【vba】フォームに書いてあ...
-
Pythonプログラミングでエラー
-
LCD ディスプレイを Raspberry ...
-
クラスモジュールについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エラー
-
XML::XPathで日本語検索するには
-
perlスクリプト s/^\\s+//; ...
-
PerlでIPアドレスを取得する方法
-
「CGIプログラムエラー」って何...
-
perl+shiftjisで5c文字化けの対...
-
実行時パラメータを使用するとE...
-
正規表現でのエラー
-
フォームから送られてきた文字...
-
何時間後を求める。
-
windowsXP上で動作する最新版の...
-
UTF8でperlスクリプトを書くと...
-
ActivePerl 1行入力で 'と"が...
-
Perl 教えてください。
-
メールフォームから大きめの添...
-
perlでactive directoryに登録
-
ローカルテストOKのPerl サー...
-
Perlで長音
-
syntax OKなのに・・・
-
Perlでのルート計算で、小数点...
おすすめ情報