I didn't realize that school was back in session already.

How about:

foreach ( keys %hash1 ) { my $out = ( exists $hash2{$_} ) ? $hash1{$_} . "." . $hash2{$_} : $hash1{$_} ; print $out, "\n"; }

This assumes that if a key exists its value is defined. It also assumes that what you really meant was that you want to print the value associated with the keys in the respective hashes.

I hope I haven't robbed you of your opportunity for an education. ;) See perldata, exists, keys, perlsyn, and perlop for an understanding at the mechanisms at work in this snippet. If your professor hasn't discussed the ternary operator yet, you may need to be able to explain how you know about it and how to use it. That's found in perlop.


Dave


In reply to Re: Hash key intersection by davido
in thread Hash key intersection by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.