Perl data type checking

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Perl data type checking
# 1  
Old 06-18-2008
Perl data type checking

I am using perl 5.8.0.

I need to check some values to see it they are floats. Our system does not have Data::Types so I can't use is_float. Is there something else that I can use? The only thing in Data is I am not allowed to download anything to our system so I have to use what I have. Does anyone have any ideas? Thanks.

# 2  
Old 06-18-2008
Perl internally doesn't have different scalar types, all numbers are simply scalars. Depending on what you want, you could check if the number has a fractional part, or use a regular expression match.

if ($scalar =~ m/[^-+.\d]/ || $scalar !~ /\d/) { $what = "string, not number" }
elsif ($scalar == int($scalar)) { $what = "integer" }
else { $what = "float" }

The first condition will specifically require all numbers to have a digit, so "." doesn't evaluate to "0.0". If you want to change that, you could change the second regular expression. Perhaps it should be stricter and check that there is at most one decimal point, and that the sign comes before the numbers, if present. But hopefully this should at least get you going.
# 3  
Old 06-18-2008

Thanks. That really helped.

# 4  
Old 06-18-2008
further reading:

perlfaq4 -
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Programming

Incompatible data type fpos_t in C

This is from a program I wrote over in 1998 that I am trying to compile on a linux machine: void write_line (FILE *fp, int rec_no, line_rec *arec) { fpos_t woffset; woffset = (rec_no - 1) * sizeof(line_rec); fsetpos(fp,&woffset); fwrite(arec,sizeof(line_rec),1,fp); }On the line... (2 Replies)
Discussion started by: wbport
2 Replies

2. UNIX for Advanced & Expert Users

Checking OS Type on Servers

is there a way to do this through snmp? i'm writing a shell script that will be run against several servers, but when i run the script, the most i get back from snmp is information that is simple. the snmp in the script tells me if the box is linux or solaris. but it doesn't tell me the... (7 Replies)
Discussion started by: SkySmart
7 Replies

3. Programming

help with data type sizes

i'm using a C program and running it on a linux server, i got 2 adressess of 2 variables, and 2 addresses of 2 chars, and compared it. and got the size of a int and the size of a char. why is a size of a int (4 bytes) bigger then the size of a char (1 byte)? also if i do &a-&b i get 1, but if i... (30 Replies)
Discussion started by: omega666
30 Replies

4. Web Development

Data type to use for prices with commas

Hi everybody, I`m very new with PHP and Databases and I having the follow issue with prices data.. The original information is in CSV files. The prices have formatted with commas and dots as follow: 12,300.99 -->(thousands separated by commas) 3,500.25 -->(thousands separated... (10 Replies)
Discussion started by: cgkmal
10 Replies

5. AIX

Value too large to be stored in data type???

Hello, I get this message : "Value too large to be stored in data type" when I try to open a 3Gb file. Can someone helps me to resolve the problem. Thank you very much (5 Replies)
Discussion started by: limame
5 Replies

6. Shell Programming and Scripting

Awk type checking

Hello, How to check if two variables( fields in awk) have the same datatype ( INTEGER , REAL, TEXT ) ? (2 Replies)
Discussion started by: scotty_123
2 Replies

7. Programming

data type limitation

I am writing some code to do analysis on the file system (HP-UX 11.11). I am using stat(..) to get file information. My problem is that the file-size may exceed the data types defined in 'sys/stat.h' & 'sys/types.h' respectively. Thus file-sizes in the Giga-byte range are not read correctly.... (2 Replies)
Discussion started by: ALTRUNVRSOFLN
2 Replies

8. Programming

time_t data type-- what does start +1 mean?

Hi, I am trying to understand an very old C program. .... time_t start, end; ptr = localtime(&start); ... fprintf(out, "%-35s 01 %5s %2s %10d 1 5 /tty/M%d/%02d %24s", buffer3, job, ver, start, mach_num,atoi(buffer), asctime(ptr)); fprintf(out, "%-35s 03 %5s %2s %10d 1 5... (9 Replies)
Discussion started by: whatisthis
9 Replies

9. Programming

FILE data type

Hi all, Can anyone tell me a little about the datatype FILE, which represents stream. What does its structure look like, and in which header file is it defined and so on... Ex : FILE *fp ; fp = fopen("filename", "w") ; (6 Replies)
Discussion started by: milhan
6 Replies
Login or Register to Ask a Question

Featured Tech Videos