use warnings; use strict; my @lines = ; my @splitLines = map {[/'(....)'..([-\d]*)\) -> '?(....)'?..([-\d]*)/]} @lines; my $graphStr = <)/_/g; $graphStr .= "}\n"; open outFile, '>', 'graph.dot'; print outFile $graphStr; close outFile; `dot -Tpng -ograph.png graph.dot`; __DATA__ 'TAvi' (-37) -> 'TDMk' (-32) 'TAvi' (-38) -> 'TMrk' (-34) 'TDMk' (-32) -> xfer (-12) 'TDif' (-7) -> xfer (-11) 'TDif' (-8) -> 'TMCF' (-35) 'TDig' (-27) -> 'TSpN' (-33) 'TLCI' (-36) -> 'TAvi' (-37) 'TMCF' (-35) -> 'TLCI' (-36) 'TMrk' (-34) -> xfer (-28) 'TSpN' (-33) -> 'TAvi' (-38) 'TSpN' (-33) -> 'TDMk' (-32) 'TSpN' (-33) -> 'TMCF' (-35)