When I have numerical data, I like to store it as such in whatever database I'm using, so that I can take advantage of numeric database functions if I need to. But when it comes time to manipulate, compare or display the data, Perl doesn't really care -- it is all just a scalar. I often use sprintf to format data that I select from a database but need to have in a particular format:
use strict;
use warnings;
use DBI;
# assuming $dbh is a connected database handle
my $result_ref = $dbh->selectall_arrayref("select field1, field2 fro
+m testtable");
if ($DBI::errstr) {
print "An error was encountered in retrieving data : $DBI::errstr"
+;
}
foreach my $thisrow (@$result_ref) {
my $field1 = sprintf "%06d",$thisrow->[0];
my $field2 = $thisrow->[1];
# do whatever you need to do with those values
}
Of course, many relational databases also have internal formatting instructions (e.g. Oracle's lpad or rpad) which can take care of this for you as well.
No good deed goes unpunished. -- (attributed to) Oscar Wilde