こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Perlについてご教示お願い致します。

Perl初心者です。ご教示お願い致します;;
~text.txt~
3,name,text
2,あ,あ
1,あ,あ

上記のようなテキストファイルがあり、
my $NAME = $form->param('name');
my $TEXT = $form->param('text');
unshift(@DATA,"$NO,$NAME,$TEXT\n");

と、略してますが、
NAMEとTEXTは、ページフォーム内のテキストを入力で
CGI.pmを使用し、入力することはできました。

そこで、NOなのですが、次回入力する際、「4」と
テキストファイルの1行目の1列目に+1した数字を
書き込むようにしたいのですが、
どのようにすればいいでしょうか?

my $NO = $ここに1行目の1列目の数字 + 1;
これを,unshiftの前に入れるまではわかるのですが、
「$ここに1行目の1列目の数字」
これがどう求めるのかわりません;;

投稿日時 - 2017-05-15 10:04:48

QNo.9329458

困ってます

質問者が選んだベストアンサー

@DATAの配列の要素数を関数で数値化し+1するだけです。

余計な行をいれない場合。
my $NO = @DATA;
$NO++;

もう少し調整すると

my $NO = @DATA;
my $NOnum = 0;
if ($NO > 0){
foreach my $val (@DATA) {
($NOnum, $dmy1, $dmy2) = split( /,/ ,$val);
# できれば$NOnumから改行とスペースを削除する
if( $NOnum =~ /^[0-9]+$/ ) {
last;
}else{
$NOnum = 0;
}
}
}
$NO = $NOnum + 1;

投稿日時 - 2017-05-16 02:11:34

お礼

ありがとうございます!

投稿日時 - 2017-05-17 09:16:47

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問