Perl Split
A very useful function in Perl is split, which splits up a string and places it into an array. The function uses a regular expression and as usual works on the $_ variable unless otherwise specified.
The split function is used like this:
[perl]
$info = “Caine:Michael:Actor:14, Leafy Drive”;
@personal = split(/:/, $info);
[/perl]
which has the same overall effect as
[perl] @personal = ("Caine", "Michael", "Actor", "14, Leafy Drive"); [/perl]
If we have the information stored in the $_ variable then we can just use this instead
[perl] @personal = split(/:/); [/perl]
If the fields are divided by any number of colons then we can use the RE codes to get round this. The code
[perl]
$_ = “Capes:Geoff::Shot putter:::Big Avenue”;
@personal = split(/:+/);
[/perl]
is the same as
[perl]
@personal = (“Capes”, “Geoff”, “Shot putter”, “Big Avenue”);
[/perl]
But this:
[perl]
$_ = “Capes:Geoff::Shot putter:::Big Avenue”;
@personal = split(/:/);
[/perl]
would be like
[perl]
@personal = (“Capes”, “Geoff”, “”, “Shot putter”, “”, “”, “Big Avenue”);
[/perl]
A word can be split into characters, a sentence split into words and a paragraph split into sentences:
[perl]
@chars = split(//, $word);
@words = split(/ /, $sentence);
@sentences = split(/\./, $paragraph);
[/perl]
In the first case the null string is matched between each character, and that is why the @chars array is an array of characters – ie an array of strings of length 1.