say "\tDone with source and sink files\n"; $/ = "\n"; # restore record separator my @choroba = ('choroba my car -- a $car -- is $car_colour. Choroba-', 'choroba my car2 is $car_colour $car. Choroba-', 'choroba my car3 is $car_colour $car Choroba-', 'choroba my car4 is $car_colour and |secondinstance: $car_colour| |firstinstance:$car| Choroba-', ); for (@choroba) { if ( $_ =~ /choroba/ .. /Choroba-/ ) { s/choroba/ /; # ... s/Choroba-/ /; # or set record separator s/\$car_colour/red/g; # yup, need the g s/\$car[^_]{1}/ford/; say $_; } } #### Done with source and sink files my car -- a ford-- is red. my car2 is red ford my car3 is red ford my car4 is red and |secondinstance: red| |firstinstance:ford