[Kc] Perl Noob

Emmanuel Mejias emmanuel.mejias at gmail.com
Tue Sep 18 16:35:01 PDT 2007


Well, that didn't work. It just gave me a print out of USER TERM HOSTNAME
and SHELL instead of actual 'username', 'xterm', some host, and /bin/bash.

right now the way i have it it just gives me...

xterm
emejias1

....instead of...

/home/emejias1
/bin/bash
xterm
emejias1

On 9/18/07, Emmanuel Mejias <emmanuel.mejias at gmail.com> wrote:
>
> Okay I'll give that a try. I think that he wanted us to use the hash that
> was in the lesson. thanks again!
>
> On 9/18/07, Frank Wiles <frank at wiles.org> wrote:
> >
> > On Tue, 18 Sep 2007 13:48:02 -0500
> > "Emmanuel Mejias" < emmanuel.mejias at gmail.com> wrote:
> >
> > > Cool! Thanks all for the feeback and links. I've hit a few of those
> > > in the past as well. I'm like John as well, I need to do it to learn
> > > it. I've been in the BASH world so a lot of this stuff is new to me
> > > and I'm trying to relate how some of the things you can do in Bash
> > > how they work in Perl.
> > >
> > > Well here goes. I just recently started taking an online course in
> > > Perl and I've also been using Perl by Example book as a reference. In
> > > one of my exercises I have to write a script that prints out a sorted
> > > list of environment variables. Well for some reason it is only
> > > printing out 3 of the 5 that I specified. It doesn't matter what
> > > order I put the environment variables in, it just prints out every
> > > other one. In this case it prints out HOME, HOSTNAME and USER, but
> > > leaves out TERM and SHELL. What am I not doing right in my code?
> > >
> > > #!/usr/bin/perl
> > >
> > > %env = ('USER',
> > > 'SHELL',
> > > 'HOSTNAME',
> > > 'TERM',
> > > 'HOME');
> > >
> > > foreach $key (sort(keys(%env))){
> > > print "$env $ENV{$key}\n";
> > > }
> > > Thoughts?
> >
> > You're using a hash like an array when you shouldn't be:
> >
> > What that is doing is creating this:
> >
> > $env{USER} = 'SHELL';
> > $env{HOSTNAME} = 'TERM';
> > $env{HOME} = '';
> >
> > Do this instead:
> >
> > my @envs = qw( USER SHELL HOSTNAME TERM HOME );
> >
> > foreach my $env ( @envs ) {
> >     print "$env $ENV{$env}\n";
> > }
> >
> > -------------------------------------------------------
> >   Frank Wiles, Revolution Systems, LLC.
> >     Personal : frank at wiles.org  http://www.wiles.org
> >     Work     : frank at revsys.com http://www.revsys.com
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.pm.org/pipermail/kc/attachments/20070918/b15e8c82/attachment.html 


More information about the kc mailing list