
自作の掲示板を作ろうと思い、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ランキング
-
テキストファイルで提出とは?
-
INDIRECT 横に再度抽出したい
-
openした後、closeしないでプロ...
-
ファイルアイコンの左下に緑の□...
-
Strawberry Perl for Windows ...
-
PerlでUTF-8のファイルの文字列...
-
Perlのエラーについてご教授く...
-
perlの構文でカンマの意味が分...
-
Perlで特定文字列から特定文字...
-
perl 初等プログラミングについて
-
perlのflock関数でロックをかけ...
-
perlで2次元配列をサブルーチ...
-
Perl の外部モジュールの利用方法
-
ラズベリーパイ初心者です。 ラ...
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
AI sisterとは、偽物の人ですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perl言語を使用してます、
-
VBSについて教えてください。
-
Time::Pieceについて
-
エラー
-
メールフォームからの受信メー...
-
実行時パラメータを使用するとE...
-
PerlでIPアドレスを取得する方法
-
perlでランダムな文字列を作りたい
-
Image::Magickの使い方を教えて...
-
perlでactive directoryに登録
-
perlスクリプト s/^\\s+//; ...
-
awkのtoupper()
-
use warningsがうるさい?
-
何時間後を求める。
-
ActivePerl 1行入力で 'と"が...
-
Pod::Usageで日本語を使用する...
-
SocketでPOPサーバーから受けた...
-
Perlで長音
-
PerlからSSLのページを読み込み...
-
DBD::Mysql が使用する標準のso...
おすすめ情報