'split'は、先頭、末尾、および埋め込みスペースが余分に処理されません。あなたの最善の策は、空白以外の文字、つまりm{\S+}gso
を繰り返してマッチさせることです。
最初のコマンドラインパラメータは$ARGV[0]
です。我々は持っている一緒に置く:
#! /usr/bin/perl
use strict;
use warnings;
my @words = $ARGV[0] =~ m{\S+}gso;
for (my $i = 0; $i < @words; $i++) {
print "word", $i + 1, " = ", $words[$i], "\n";
}
(私は質問が元々各ラインで上昇値を発するという点で囲まれたという理由だけでインデックスを使用して、アレイ上で繰り返してきた通常私達はちょうどfor
を使用したいと思います。またはforeach
直接リストを反復処理するよう呼び出す)
:。
perl test.pl ' This is a sentence '
プリント:
word1 = This
word2 = is
word3 = a
word4 = sentence
二重ダッシュの長いオプション名の入力を明示的に取りたい場合は、Quentinの説明に従ってGetopt :: Longを使用します。
perlに分割機能がありますか? – Mat