#!/usr/bin/perl -w use strict; while () { if (/aaaa$/) { local $/ = '%'; # use local here for extra-cleanness ($/ is restored to its previous state when you exit the block) while () { print "read: $_\n"; } } } __DATA__ XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXaaaa abcdefghijklm%nopqrstuvw%xyz