私は2つの入力をコマンドプロンプトに読み込みます。最初は、書いているプログラムで検索される一連の単語で、2つ目は、その言葉がどこにあるかを知る。たとえば、私のコマンドプロンプトでperl WebScan.plという単語を読み込みます。WebPage000.htmRegexのPerlで配列にアクセスする方法
これらの入力のいずれかにアクセスするのに問題はありませんが、Webページの内容にアクセスするのは非常に困難です正規表現を実行してhtmlタグを削除し、コンテンツにアクセスします。私は、はるかに効果的である正規表現せずにこれを行うために利用可能なサブルーチンがあることを認識し、私は正規表現として行う必要があります:(
ノートラブルで印刷用のHTMLファイルにアクセスすることができます。
open (DATA, $ARGV[1]);
my @file = <DATA>;
print @file;
これはhtmlページのコード全体を表示しますが、htmlブロックを削除するために正規表現を渡すことができません。「s ///の配列逆参照を変更できません"私は特定の正規表現を持っている場所です。私はこれを回避する方法がわかりません - 私はスカラーに配列を変換しようとしたが、私はすべてのHTMLのデータにアクセスすることができません(そしていいえ、それだけではプリントできませんe配列の値の数:
正規表現を使用して出力を絞り込むには、配列の内容にどのようにアクセスすればよいですか?
我々は正規表現コードを参照する必要があります。 – codaddict
@codaddict => 'perl -e '@array =〜s /のようなものからそのエラーが出ます。// ''スカラーコンテキストで配列から返された値が読み込み専用であるため、perlが壊れます。 –
DATAをファイルハンドル名として使用しないでください。特別なファイルハンドルです。実際には、グローバルファイルハンドルを使用せず、字句ファイルハンドルを使用してください。 'open'の3引数形式を使ってそれらを作成します。 $ ARGV [1]を開くことはできません:$!\ n "; ' – daotoad