Moin!
Filehandles sind keine Skalare, ausserdem ist es usus auch Systemoperationen zu checken.
Psstt! Struppi! Hast Du auch mit Perl 4 angefangen und kannst Dich nicht so recht davon losreißen? Du kannst inzwischen Skalare für Filehandles verwenden. Ist IIRC auch der "preferred Way".
schon allein das sollte eigentlich nicht funktionieren. Der ausdruck .* sucht alle Zeichen, was jetzt genau das ungierige Fragezeichen da macht weiß ich nicht.
Der macht das Sternchen "non greedy". Damit wird also nur bis tum ersten </item> gefunden. Ist also duchaus machbar.
Aber um solche Tags zu suchen ist eher so ein Ausdruck üblicher:
my @erg = ($text =~ /<tag[^>]*>([^<]*)/gi);
98% ack.
2%: my @erg = ($text =~ m#<tag\b[^>]*>([^<]*)</tag>#g);
1. \b damit nicht <tage> als <tag> gewertet wird
2. normalerweise für XML kein "i" da <Tag> != <tag>. Da es hier RSS ist, könntest Du mit dem "i" aber recht haben. Ich kenne RSS nicht genau (und bin zu faul nachzusehen).
-- Skeeve