次のようなリストがあります。
自転車: 子供用 289 自転車: マウンテン バイク 928 自転車: ロードバイク 870 キャンプ&アウトドア用品 761 カヌー、カヤック、手漕ぎボート 231 登山用品 120 フリーウェイトとホームジム 583 GPS とロケーター 104 ゴルフ用品 1,223 その他のフィットネス機器 668
数字または空白の行をスキップする必要があるだけです
if (($line =~ /0..9/) || ($line eq "")){}
else{
あなたが書くなら
while (<>) {
next unless /[^\d,\s]/;
:
}
プログラムは、数字、コンマ、および空白のみを含むすべての行をスキップします。
このプログラムはアイデアを示しています
use strict;
use warnings
while (<DATA>) {
next unless /[^\d,\s]/;
print;
}
__DATA__
Bicycles: Childrens
289
Bicycles: Mountain Bikes
928
Bicycles: Road Bikes
870
Camping & Outdoors Equipment
761
Canoes, Kayaks, Row-Boats
231
Climbing Equipment
120
Freeweights and Home Gyms
583
GPS and Locators
104
Golf Equipment
1,223
Other Fitness Equipment
668
出力
Bicycles: Childrens
Bicycles: Mountain Bikes
Bicycles: Road Bikes
Camping & Outdoors Equipment
Canoes, Kayaks, Row-Boats
Climbing Equipment
Freeweights and Home Gyms
GPS and Locators
Golf Equipment
Other Fitness Equipment
print $line if $line !~ /[0-9]/ and $line =~ /\S/;
perldoc perlre . もう少し力を入れればもっと学べます。
次に if (!$line || $line != int($line));
1 つ目は空白値のチェックで、2 つ目はこの値が整数かどうかをチェックします。
if ($line !~ /^[\d,]*[\n\r]*$/) {
# do something
}
else {
# blank or "digits & comas" only line
}
「空白」とは、オプションの行末を持つ空の文字列を意味します(使用しない場合chomp
)