+use strict;
+use Test;
+use Carp;
+BEGIN {plan tests => 1}
+use Perl::Tidy;
+
+#----------------------------------------------------------------------
+## test file->file through arg list
+# Also tests:
+# passing parameters names through 'argv=>'
+# -o flag
+#
+# NOTE: This will read file 'lextest' and create file 'lextest.out'
+# (for portability, 8.3 filenames are best)
+# NOTE: must use -npro flag to avoid using local perltidyrc flags
+#----------------------------------------------------------------------
+
+my $input_file = "lextest";
+my $output_file = "lextest.out";
+
+Perl::Tidy::perltidy(
+ source => undef,
+ destination => undef,
+ perltidyrc => undef,
+ argv => "-nsyn -npro $input_file -o $output_file",
+);
+
+open FILE, "< $output_file";
+my @output=<FILE>;
+my @expected_output=<DATA>;
+my $ok=1;
+if (@expected_output == @output) {
+ while ( $_ = pop @output ) {
+ my $expect = pop @expected_output;
+ if ( $expect ne $_ ) {
+ print STDERR "got:$_";
+ print STDERR "---\n";
+ print STDERR "expected_output:$expect";
+ $ok=0;
+ last;
+ }
+ }
+}
+else {
+ print STDERR "Line Counts differ\n";
+ $ok=0;
+}
+ok ($ok,1);
+
+# This is the expected result of 'perltidy lextest':
+
+__DATA__
+# This is a simple testfile to demonstrate perltidy, from perlop(1).
+# One way (of several) to run perltidy is as follows:
+#
+# perl ./perltidy lextest
+#
+# The output will be "lextest.tdy"
+$_ = <<'EOL';
+ $url = new URI::URL "http://www/"; die if $url eq "xXx";
+EOL
+LOOP: {
+ print(" digits"), redo LOOP if /\G\d+\b[,.;]?\s*/gc;
+ print(" lowercase"), redo LOOP if /\G[a-z]+\b[,.;]?\s*/gc;
+ print(" UPPERCASE"), redo LOOP if /\G[A-Z]+\b[,.;]?\s*/gc;
+ print(" Capitalized"), redo LOOP if /\G[A-Z][a-z]+\b[,.;]?\s*/gc;
+ print(" MiXeD"), redo LOOP if /\G[A-Za-z]+\b[,.;]?\s*/gc;
+ print(" alphanumeric"), redo LOOP if /\G[A-Za-z0-9]+\b[,.;]?\s*/gc;
+ print(" line-noise"), redo LOOP if /\G[^A-Za-z0-9]+/gc;
+ print ". That's all!\n";
+}