use strict; use warnings; my @files = split '@@', ; s/^.*?c:\\temp// for @files; @files = grep {/^\\/} @files; print join "\n", @files; __DATA__ c:\temp\source\test\test.c@@main\com\etc c:\temp\source\test\test1.c@@main\com\test c:\temp\source\test\test3\test2.c@@main\com\etc\test #### \source\test\test.c \source\test\test1.c \source\test\test3\test2.c