Оператор управления redo возобновляет выполнение текущего блока операторов. Вы можете использовать это, чтобы написать что-то вроде:
foreach $line (<>)
{
$tag = $line =~ m/(<.*>)/;
push @tags, $tag;
if( $tag ) redo;
}
Предупреждаю, я не запускал это.
Надеюсь, это поможет.