http://qs321.pair.com?node_id=1144658


in reply to remove 16 Zeros

eghdam,

if you know that the 'pvid' is always 32 characters then:

my $pvid = "00c1be9a467335ce0000000000000000"; my $newpvid = substr( $pvid, 0, 16 ); print "\$newpvid: $newpvid\n";
but also reading some more documentation wouldn't hurt!

Regards...Ed

"Well done is better than well said." - Benjamin Franklin

Replies are listed 'Best First'.
Re^2: remove 16 Zeros
by eghdam (Initiate) on Oct 13, 2015 at 11:49 UTC

    Hi! Yes thank u for Response. PVID is allways 32

    Charachters.

    My Script is:

    @output =`command` # Output looks like 7 lines and on line is the pvid:

    pvid 00c1be9a467335ce0000000000000000

    foreach $line (@output) {

    if ($line =~ /pvid ..... here i want to grep only the 32 charachters

    $pvid = $1 } i just want to get the $pvid.

      eghdam,

      Why make it so complicated ( however it is your script :-)

      ############# UNTESTED ################ use strict; my $pvid = ''; # initialize my @output = `command`; # Output looks like 7 lines and on [one] li +ne is the pvid: # pvid 00c1be9a467335ce0000000000000000 # I use qx/command/; # easier to see in cod +e for me! foreach my $line ( @output ) { # print "$line\n"; ## If not working, use print to figure out w +hat's happening if ( substr( $line, 0, 5 ) eq 'pvid ' ) { $pvid = substr( $line, 6, 16 ) # or '32' as you require last; } } if ( $pvid eq '' ) { ... } ## Generate warning or do some error h +andling!

      I'm coding to my style, but you are free to chose what works for you. But remember if you have to go back to the code and update, make it as easy to understand as possible. Don't spend 2 hours figuring out what you did and then make a 2 line update.

      Good Luck...Ed

      "Well done is better than well said." - Benjamin Franklin