Prev

Perl Notes

Next

Split: Splitting strings into arrays

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:


  $info = "Caine:Michael:Actor:14, Leafy Drive";
  @personal = split(/:/, $info);

which has the same overall effect as


  @personal = ("Caine", "Michael", "Actor", "14, Leafy Drive");

If we have the information stored in the $_ variable then we can just use this instead


  @personal = split(/:/);

If the fields are divided by any number of colons then we can use the RE codes to get round this. The code


  $_ = "Capes:Geoff::Shot putter:::Big Avenue";
  @personal = split(/:+/);

is the same as


  @personal = ("Capes", "Geoff",
               "Shot putter", "Big Avenue");

But this:


  $_ = "Capes:Geoff::Shot putter:::Big Avenue";
  @personal = split(/:/);

would be like

  @personal = ("Capes", "Geoff", "",
               "Shot putter", "", "", "Big Avenue");

A word can be split into characters, a sentence split into words and a paragraph split into sentences:


  @chars = split(//, $word);
  @words = split(/ /, $sentence);
  @sentences = split(/\./, $paragraph);

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.


Prev Arrays Next