[Catalyst-dev] [Patch] Better $elapsed==0 handling.
    Emanuele Zeppieri 
    ema_zep at libero.it
       
    Wed Jul 18 19:14:33 GMT 2007
    
    
  
Trivial, nonetheless improving.
Line 1339 in Catalyst.pm (from Catalyst-Runtime-5.7007) reads:
my $av =3D sprintf '%.3f', ( $elapsed =3D=3D 0 ? '??' : ( 1 / $elapsed ) );
which of course triggers the warning:
Argument "??" isn't numeric in sprintf
when $elapsed=3D=3D0 is true.
It also causes $av to be set to 0.000, which is a misleading value, =
given the situation.
The obvious correction is to substitute the above mentioned line with:
my $av =3D $elapsed =3D=3D 0 ? '??' : sprintf '%.3f', 1 / $elapsed;
Patch (against Catalyst.pm in trunk -- Revision 6575) attached, if =
necessary.
Cheers,
Emanuele.
-------------- next part --------------
--- Catalyst.pm	2007-07-18 19:34:59.158123300 +0200
+++ Catalyst.pm.new	2007-07-18 19:37:16.009923300 +0200
@@ -1353,7 +1353,7 @@
     =
     if ($c->debug) {
         my $elapsed =3D sprintf '%f', tv_interval($c->stats->getNodeValue);
-        my $av =3D sprintf '%.3f', ( $elapsed =3D=3D 0 ? '??' : ( 1 / $ela=
psed ) );
+        my $av =3D $elapsed =3D=3D 0 ? '??' : sprintf '%.3f', 1 / $elapsed;
         =
         my $t =3D Text::SimpleTable->new( [ 62, 'Action' ], [ 9, 'Time' ] =
);
         $c->stats->traverse(
    
    
More information about the Catalyst-dev
mailing list