sprintf looks like a good solution.
As I am not very familiar with pack I thought I'd try using it in this case, and here is what I got. Note that this code is tested but it is by no means authoritative, feel free to point my mistakes.
#!/usr/bin/perl -w
use strict;
while( <DATA>)
{ chomp;
my( $v1, $expected_res, $v2)= split /\s+/;
my $pv1= pack( 'I3', split( /\./, $v1));
my $pv2= pack( 'I3', split( /\./, $v2));
my $res;
if( $pv1 gt $pv2) { $res= '>'; }
elsif( $pv1 lt $pv2) { $res= '<'; }
elsif( $pv1 eq $pv2) { $res= '='; }
if( $res eq $expected_res) { print "ok $v1 $res $v2\n"; }
else { print "NOK $v1 $res $v2 should be $v
+1 $expected_res $v2\n"; }
}
__DATA__
1.2 < 1.3
1.3 > 1.2
1.2.1 > 1.2
1.2.1 < 1.3
1.2.1 < 1.2.2
1.2.2 > 1.2.1
1.2.10 > 1.2.2
1.2.2 < 1.2.10
1.2 = 1.2
1.2.1 = 1.2.1
1.2.10 = 1.2.10
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|