Почему вы используете регулярное выражение для этого, когда split
делает именно то, что вы хотите?
$x = "object1:object2:object3:rest of the line";
@x = split (":", $x);
foreach $s (@x) {
print "$s\n";
}
Это выводит:
object1
object2
object3
rest of the line
Если выЕсли вы хотите ограничить себя четырьмя полями, независимо от количества двоеточий, вы можете использовать:
$x = "object1:object2:object3:rest of the line with a : character";
@x = split (":", $x, 4);
foreach $s (@x) {
print "$s\n";
}
, который выдает:
object1
object2
object3
rest of the line with a : character