![](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ランキング
-
Perlで時間の計算
-
掲示板はPerlだけで作れますか?
-
アルファベットに付いて質問し...
-
perlのflock関数でロックをかけ...
-
Perlのプログラムについて
-
INDIRECT 横に再度抽出したい
-
perlで文字の置換又は抽出に関...
-
このファイルを開く方法で困っ...
-
ファイルをディレクトリ分配の...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エラー
-
XML::XPathで日本語検索するには
-
perlスクリプト s/^\\s+//; ...
-
PerlでIPアドレスを取得する方法
-
perl+shiftjisで5c文字化けの対...
-
実行時パラメータを使用するとE...
-
「CGIプログラムエラー」って何...
-
フォームから送られてきた文字...
-
正規表現でのエラー
-
何時間後を求める。
-
UTF8でperlスクリプトを書くと...
-
ActivePerl 1行入力で 'と"が...
-
メールフォームから大きめの添...
-
windowsXP上で動作する最新版の...
-
Perl 教えてください。
-
perlでactive directoryに登録
-
ローカルテストOKのPerl サー...
-
$com::VDの意味がわかりません
-
syntax OKなのに・・・
-
textareでの改行
おすすめ情報