in reply to Where to add substitution?

Assuming you are trying to modify the rows output from the parsed table, the substitution should be in your foreach loop. Note that since the rows method returns an array reference, you cannot simply perform the substitution on the loop variable. In this context, I would probably create and intermediate variable between your join and your print, a la:

#!/usr/bin/perl use strict; use warnings; use HTML::TableExtract; use WWW::Mechanize; my $url = "http://www.example.com"; my $mech = WWW::Mechanize->new(); $mech->agent_alias( 'Mac Safari' ); $mech->get( $url ); my $te = HTML::TableExtract->new( headers => [qw(Company Salary)] ); $te->parse($mech->content); foreach my $row ($te->rows) { my $output = join(' - ', @$row); $output =~ s/\t||\r||\n||\f//g; print $output; }