どのようPerlに変換し文字列番号

任意の文字列は、Perlプログラミング言語として使用できます。 次に例を示します。

▶ Run
#!/usr/bin/perl

my $str = 'Hello';

print $str + 100;

のプログラム表示に 100. 文字列 'Hello' が算術演算の 0. の 0 プラス 100100 およびそのまま画面に表示します。 くにことば"は数値コンテキスト"を参照 ではそうすることが可能で、操作として使用します。

文字列 'Hello' では数値コンテキストで 0. ていない文字列Perlはゼロになります。

場合には、行の先頭には桁の番号が和られます。 次に例を示します。

▶ Run
#!/usr/bin/perl

my $str = '23ASDF';

print $str + 0;

のプログラム表示に 23.

ここではいくつかの例を示しますが、文字列、数あるので用途-使用方法については数値コンテクスト:

''          -> 0
'1.0ASDF'   -> 1
'1.2ADF'    -> 1.2
'0123ASDF'  -> 123
' 34ASDF'   -> 34
'0x13ABC'   -> 0
'0b10ABC'   -> 0
'1e+25ASDF' -> 1e+25
' +7ASDF'   -> 7
'-13ABC'    -> -13
'--13ABC'   -> 0
' 10 100'   -> 10

こちらはスクリプトが表示は同じデータ

▶ Run
#!/usr/bin/perl

use feature qw(say);

foreach my $str ('', '1.0ASDF', '1.2ADF', '0123ASDF', ' 34ASDF',  '0x13ABC', '0b10ABC', '1e+25ASDF', ' +7ASDF', '-13ABC', '--13ABC', ' 10 100') {
     say "'$str' -> " . ($str + 0);
}

use warnings;

場合にはPerlスクリプトは use warnings; (ほとんどいていて、その使用文字列を数値の文脈 のまま印刷STDERR警告:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my $str = 'Hello';

print $str + 100;

このプログラム出力:

Argument "Hello" isn't numeric in addition (+) at script.pl line 8.
100

推薦

あの勧告で使用することはできませんの特徴されたものの翻訳であります。 が必要な場合の数値を取得します文字列の中で明示的に の正規表現オブジェクト できるだけでそのフォーマットを期待するデータを受信するために、できる ャの状態でのデータが間違った形式ではなく沈黙を受領します。

ここではサンプルコードです。 お知らのデータの初めの文字列は整数値として算する必要はあります。 番号をすべて行った。

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

my @strings = (
    '10 apples',
    '0 potatoes',
    '8 oranges',
    'nine lemons',
);

my $sum = 0;

foreach my $str (@strings) {
    if ($str =~ /^([0-9]+)/) {
        $sum += $1;
    } else {
        die "String '$str' is in incorrect format";
    }
}

print $sum;

ときにこのプログラムを実行するまでのエラー String 'nine lemons' is in incorrect format at script.pl line 19.. 感謝 このようにデータがあります。 によってまから正しいデータの代わりに文字列 'nine lemons' 使用文字列の '9 lemons'、または明示的に無視するこのループ next if $str eq 'nine lemons'.

また、標準的な方法とPerlで変換し文字列を数値には、ループするように:

foreach my $str (@strings) {
    $sum += $str;
}

この場合、お知らないそのデータと一致しない形式にしたり、当社グループの期待する

その他の記事