Perl Quiz-of-the-Week #11
Mark Jason Dominus <[email protected]> Thu, 06 Feb 2003 18:00:30 -0500
| Newsgroups | gmane.comp.lang.perl.qotw.quiz-of-the-week |
|---|---|
| Organization | Plover Systems |
| Message-ID | <[email protected]> |
IMPORTANT: Please do not post solutions, hints, or other spoilers
until at least 60 hours after the date of this message.
Thanks.
IMPORTANTE: Por favor, no enviéis soluciones, pistas, o cualquier otra
cosa que pueda echar a perder la resolución del problema hasta
que hayan pasado por lo menos 60 horas desde el envío de este
mensaje. Gracias.
IMPORTANT: S'il vous plaît, attendez au minimum 60 heures après la
date de ce message avant de poster solutions, indices ou autres
révélations. Merci.
WICHTIG: Bitte schicken Sie keine Lösungen, Tipps oder Hinweise für
diese Aufgabe vor Ablauf von 60 Stunden nach dem Datum dieser
Mail. Danke.
BELANGRIJK: Stuur aub geen oplossingen, hints of andere tips in de
eerste 60 uur na het verzendingstijdstip van dit
bericht. Waarvoor dank.
VNIMANIE: Pozhalujsta ne shlite reshenija, nameki na reshenija, i
voobshe lyubye podskazki v techenie po krajnej mere 60 chasov
ot daty etogo soobshenija. Spasibo.
Qing3 Zhu4Yi4: Qing3 Ning2 Deng3Dao4 Jie1Dao4 Ben3 Xin4Xi2 Zhi1Hou4 60
Xiao3Shi2, Zai4 Fa1Biao3 Jie3Da2, Ti2Shi4, Huo4 Qi2Ta1 Hui4
Xie4Lou4 Da2An4 De5 Jian4Yi4. Xie4Xie4.
----------------------------------------------------------------
We'll try something a little different this time.
Question #1:
Why does Perl have the 'defined' function? If you want to see if a
variable contains an undefined value, why not just use something like
this this?
if ($var == undef) { ... }
Question #2:
What's wrong with this code?
%hash = ...;
while (<STDIN>) {
chomp;
for my $key (keys %hash) {
if ($key eq $_) {
print "$key: $hash{$key}\n";
}
}
}
Question #3:
What's wrong with this code?
@matching_words = grep search_for($_, $text_file), @words;
sub search_for {
my ($target, $file) = @_;
return unless open F, "<", $file;
while (<F>) {
return 1 if index($_, $target) >= 1;
}
close F;
return;
}