小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

int関数の意外な使い道

Perlの組み込み関数に、数値を整数化するint関数があります。
通常は、小数点以下切り捨ての場合に使用しますが、実はコレ、文字列にも有効なのです。


たとえば、文字列『"0010ABC222"』に対してint関数を行うと『10』が返ります。
また、文字列『"01"』や『"002"』なども、各々『1』『2』が返ります。
つまり、ゼロサプレスがされるわけです。

#!/usr/bin/perl
use strict;
#use warnings;

my $strWk = "0010ABC222";
print int($strWk) , "\n";

$strWk = "002";
print int($strWk) , "\n";

この特性を利用すると、ゼロサプレスしないとダメ系な、例えばcronとかの値を設定するときに有効なのです。
もうちょっと具体的に言うと、cronは日時を設定しますが、例えば『分』をブラウザから入力した場合、普通2桁(00〜59)になっています。こういう場合にint関数を使うとゼロサプレスされ有効なのです。


ちなみに、ゼロサプレスとは、先頭の「0」を削除することで、逆に付加することをゼロパディングと言います。