-
-
07 May 2004 15:55:50 UTC
- Distribution: String-Scanf
- Module version: 2.1
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Issues (0)
- Testers (643 / 0 / 0)
- Kwalitee
Bus factor: 0- 86.13% Coverage
- License: unknown
- Activity
24 month- Tools
- Download (4.78KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- Dependencies
- unknown
- Reverse dependencies
- CPAN Testers List
- Dependency graph
NAME
String::Scanf - emulate sscanf() of the C library
SYNOPSIS
use String::Scanf; # imports sscanf() ($a, $b, $c, $d) = sscanf("%d+%d %f-%s", $input); ($e, $f, $g, $h) = sscanf("%x %o %s:%3c"); # input defaults to $_ $r = String::Scanf::format_to_re($f);
or
# works only for Perl 5.005 or later use String::Scanf qw(); # import nothing my $s1 = String::Scanf->new("%d+%d %f-%s"); my $s2 = String::Scanf->new("%x %o %s:%3c"); ($a, $b, $c, $d) = $s1->sscanf($input); ($e, $f, $g, $h) = $s2->sscanf(); # input defaults to $_
DESCRIPTION
String::Scanf supports scanning strings for data using formats similar to the libc/stdio sscanf().
The supported sscanf() formats are as follows:
- %d
-
Decimal integer, with optional plus or minus sign.
- %u
-
Decimal unsigned integer, with optional plus sign.
- %x
-
Hexadecimal unsigned integer, with optional "0x" or "0x" in front.
- %o
-
Octal unsigned integer.
- %e %f %g
-
(The [efg] work identically.)
Decimal floating point number, with optional plus or minus sign, in any of these formats:
1 1. 1.23 .23 1e45 1.e45 1.23e45 .23e45
The exponent has an optional plus or minus sign, and the
e
may also beE
.The various borderline cases like
Inf
andNan
are not recognized. - %s
-
A non-whitespace string.
- %c
-
A string of characters. An array reference is returned containing the numerical values of the characters.
- %%
-
A literal
%
.
The sscanf() formats [pnSC] are not supported.
The
%s
and%c
have an optional maximum width, e.g.%4s
, in which case at most so many characters are consumed (but fewer characters are also accecpted).The numeric formats may also have such a width but it is ignored.
The numeric formats may have
[hl]
before the main option, e.g.%hd
, but since such widths have no meaning in Perl, they are ignored.Non-format parts of the parameter string are matched literally (e.g.
:
matches as:
), expect that any whitespace is matched as any whitespace (e.g.\s+
).WARNING
The numeric formats match only something that looks like a number, they do not care whether it fits into the numbers of Perl. In other words,
123e456789
is valid forsscanf()
, but quite probably it won't fit into your Perl's numbers. Consider using the various Math::* modules instead.AUTHOR, COPYRIGHT AND LICENSE
Jarkko Hietaniemi <jhi@iki.fi>
Copyright (c) 2002,2004 Jarkko Hietaniemi. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Module Install Instructions
To install String::Scanf, copy and paste the appropriate command in to your terminal.
cpanm String::Scanf
perl -MCPAN -e shell install String::Scanf
For more information on module installation, please visit the detailed CPAN module installation guide.