int()
文字列をfloat値に変換できるような関数はありますか?私は現在、次のコードを使用しています。
$input=int(substr($line,1,index($line,",")-1));
によって返された文字列substr
をfloatに変換する必要があります。
int()
文字列をfloat値に変換できるような関数はありますか?私は現在、次のコードを使用しています。
$input=int(substr($line,1,index($line,",")-1));
によって返された文字列substr
をfloatに変換する必要があります。
使用するだけです。Perlでは、数字のように見える文字列は数字です。
さて、それを使用する前にそれが数字であることを確認したい場合は、それを行うユーティリティメソッドがScalar::Util
あります:
use Scalar::Util qw/looks_like_number/;
$input=substr($line,1,index($line,",")-1);
if (looks_like_number($input)) {
$input += 1; # use it as a number!
}
コメントに残したサンプル入力に基づいて、数値を抽出するためのより堅牢な方法は次のとおりです。
$line =~ /([^\[\],]+)/; # <-- match anything not square brackets or commas
$input = $1; # <-- extract match
あなたのデータがどのように見えるかはわかりませんが、substrの3番目の引数は長さであり、位置ではないことをご存知ですか?また、最初の位置は0です。取得していると思われるデータが取得されていない可能性があります。文字列の先頭から開始し、1つだけずれているため、ほとんどの場合、誤って機能します。