in reply to Accessing data between two tags

The others already gave regexes. But how about this split approach:
while (my $line = <SESAME>){ my ($tempa, $value, $tempb)= split m#</?CS_REFCLT>#, $line, 3; }

Update: Thanks to jdporter for telling me about my mistake, using 2 instead of 3 above. Fixed...

Of course this will also find other constructs like </CS_REFCLT>dfasdf</CS_REFCLT>.

But maybe, if the data is XML, a real XML parser like XML::Twig is something that would help you best here...
#!/usr/bin/perl use strict; use warnings; use XML::Twig; my $twig= new XML::Twig( twig_handlers => { CS_REFCLT => \&cs_refclt, }, ); my @numbers; $twig->parsefile( 'filename' ); # here you will have all numbers in @numbers. sub cs_refclt { my ($t, $elt)= @_; push @numbers, $elt->text(); }