Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^2: re-syncing these subtitles

by wazoox (Prior)
on Sep 06, 2010 at 09:35 UTC ( #859026=note: print w/replies, xml ) Need Help??


in reply to Re: re-syncing these subtitles
in thread re-syncing these subtitles

The $? variable is not relevant in this context. You should be using either $! or $^E.

Oh yes, it's always quite easy to mix these up :)

You are using the /g global option in a scalar context, which would make sense in a while loop, but the value of $_ changes each time you test it so it makes no sense to use it there.

Well, same as above : quick and dirty script hastily thrown together, not too much testing...

Why not just: my ( $hours, $minutes, $seconds ) = split /:/, $time;

Because I want that if you pass only one value, it defaults to seconds, and to minutes:seconds with only two values.

An unnecessary step as the numbers are already numerical.

It's a cautionary cleanup in case you're passing garbage as parameters. it will at least avoid mangling hopelessly the output :)

The number before the period in the format string for floating point is the total width.

I think you missed the "d" there :). Edit : Well I don't know what's the right form, but "%02.3f" apparently works as intended... ""%05.3f" adds 4 leading zeros.

Replies are listed 'Best First'.
Re^3: re-syncing these subtitles
by jwkrahn (Monsignor) on Sep 06, 2010 at 10:21 UTC
    It's a cautionary cleanup in case you're passing garbage as parameters.

    Perhaps you should use Scalar::Util::looks_like_number to confirm a numerical value.


    I think you missed the "d" there :)

    There is no letter 'd' in the line:

    my $seconds = sprintf( "%02.3f", ( ( $sectime - ( $hours * 3600 ) +) - ( $minutes * 60 )) );


    Update


    Why not just:
     my ( $hours, $minutes, $seconds ) = split /:/, $time;
    Because I want that if you pass only one value, it defaults to seconds, and to minutes:seconds with only two values.

    Then try it like this:

    my ( $hours, $minutes, $seconds ) = ( split /:/, $time )[ -3, -2, -1 ] +;
      There is no letter 'd' in the line:

      Ooops garbled copy and paste....

      my ( $hours, $minutes, $seconds ) = ( split /:/, $time ) -3, -2, -1 ;

      Nice but too clever for my taste :)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://859026]
help
Chatterbox?
[1nickt]: my $x = $aohoaoh->[0]->{' foo'}->[0]->{'bar' }; should work
[thepkd]: not indexing
[thepkd]: getting data out of the ds
[choroba]: it depends. Give more details, please
[thepkd]: i used a series of {}'s but it dont work
[choroba]: You need square brackets for arrays
[GotToBTru]: you can certainly construct a single expression to access any part of the data structure, without using temp variables. but you might make it easier on yourself and any other poor soul who has to understand your code if you do
[thepkd]: to dereference i mean
LanX .oO( oh tempz, oh moretz)
[thepkd]: @GotToBTru Sure. But.

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (9)
As of 2016-12-06 13:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (104 votes). Check out past polls.