in reply to Re: Best way to print variables in regex
in thread Best way to print variables in regex

Thank you Kenosis, your method seems the most straightforward. Thanks everyone who answered here and on the other thread.

Are there any recommendations on how best to put this into a spreadsheet? I want to run this on a few phrases so think it would be a good idea to put it in a spreadsheet in a consistent way rather than copy and paste from terminal. So DET would values would always be in column 1, IN in 2.

  • Comment on Re^2: Best way to print variables in regex

Replies are listed 'Best First'.
Re^3: Best way to print variables in regex
by tangent (Parson) on Jan 22, 2014 at 03:04 UTC
    One way would be to create a CSV file and then import that into your spreadsheet:
    my $filename = '/path/to/file.csv'; open (my $fh, '>', $filename) or die "Could not open $filename, $!"; my @headers = qw( DET IN JJ NN VBD ); print $fh join(',',@headers) . "\n"; # then, for each of your phrases print $fh join(',', map($tags{$_} || 0, @headers) ) . "\n"; close $fh;
    However, if you intend to do the tagging at different times you will need a way to update the data. You could use Spreadsheet::WriteExcel but there is a learning curve and probably overkill. Alternatively, you can keep your spreadsheet data as a CSV file and append to that file, or use Tie::Array::CSV to append:
    use Tie::Array::CSV; my $filename = '/path/to/file.csv'; tie my @file, 'Tie::Array::CSV', $filename; # (this bit has been fixed - see comment below) # for each of your phrases my @row = map { $tags{$_} || 0 } @headers; push(@file,\@row); untie @file;

      That's great, thanks very much for your help

      One question on the append function - it puts it all into one cell. I can use text to columns in Excel to fix this but is there a way to do this in the append itself?

        One question on the append function - it puts it all into one cell
        There was an error in my code, I have fixed it now, sorry. When using Tie::Array::CSV you append (push) an array reference not a comma delimited string (the module does that bit for you).