perl514 has asked for the wisdom of the Perl Monks concerning the following question:
Respected Monks,
I have written a small script that 1) Takes the input and converts it to lower case and then 2) inserts ":" between every two characters.
I wrote this script so that I dont have to keep adding the ":" manually. These are HBA WWNs that we use to manage our SAN.
Here is the script:
Everytime I execute it, I get the error : Use of uninitialized value $wwn in string eq at wwn.pl line 5. The scripts runs fine, just keeps giving this message. Here is a sample output:#!/usr/bin/perl use warnings; use strict; until (our $wwn eq "q") { print "Enter the wwn: "; chomp ($wwn=<STDIN>); my @wwn = unpack ("(a2)*", lc($wwn)); @wwn = join (":", @wwn); print "@wwn\n"; }
C:\Users\Documents\perl\practice>perl wwn.pl Use of uninitialized value $wwn in string eq at wwn.pl line 5. Enter the wwn: 10000000ABCDEFGH 10:00:00:00:ab:cd:ef:gh Enter the wwn: 10000000C9A2B3CD 10:00:00:00:c9:a2:b3:cd Enter the wwn: q q C:\Users\Documents\perl\practice>
I tried using while ($wwn ne "q") but still I get the same error message. Which I now see makes sense because both these say the same thing.
Please let me know where I am going wrong. Also, I just browsed the net and found the unpack function and have tried using it. The Perldoc has a very small article on in that doesn't tell me much. Any other pointers that explains unpack will really help me. I don't like using stuff that I don't understand clearly in a script, but its been many days, and I am not advancing much so getting impatient and used unpack without much understanding it. Kindly help me.
Update: I tried changing $wwn to "our" thinking that stating it to be "my" may be creating issues, but that also doesn't seem to be the case.
|
|---|