Evidentemente non hai mai usato le Regular Expressions (RE).
Puoi vederle (anche) come un linguaggio a se stante per la manipolazione delle stringhe; il bello e` che e` uguale in molti linguaggi di programmazione, il che` le rende ancora piu` comode.
Perl ha un ottimo supporto a tale linguaggio, ben documentato nella documentazione (man perl e vari supporti alle RE: perlreftut , perlfaq6 , perlreref , perlre ).
Se il pezzo da estrarre e` unico in ciascuna stringa, la RE che ti serve e`:
/\#(.+)ppp/ #se vuoi che il # e le p finali siano fuori dalla stringa
/(\#.+ppp)/ # se i delimitatori devono far parte della stringa estratta