Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
Python, Lua and Tcl - public course schedule [here]
Private courses on your site - see [here]
Please ask about maintenance training for Perl, PHP, Java, C, C++, Ruby, MySQL and Linux / Tomcat systems
user input

Posted by Tim (Tim), 22 October 2007

can anyone help me in this....
i want to open a file in write mode but the path of the file sholud be given by the user at run time.
i have pasted the code what i have tried.
$file is the input file and $file1 is the output file which i want to open in a write mode.

print "Please enter the input file name\n";
 $file = <STDIN>;
 open(INFILE, $file);
print "Please enter the output file name\n";
 $file1 = <STDIN>;
  open (OUT,$file1);
foreach (<INFILE>)
 {     .......
  #do something and should print in the output file.

Posted by george_Ball (george), 22 October 2007

print "Enter output file name: ";
$file1 = <STDIN>;
chomp $file1;
open ( OUTPUT, ">$file1");
# The file handle is now available for output...

Remember chomp to take off the newline from the user input. To open the file for output you put the ">" in front of the filename. Doing this in "..." quotes will use interpolation to get the sttring that you require...



Posted by deep (deep), 24 November 2007
Try this:
if($#ARGV !=1)
     warn "WARNING: Need to supply two files\n";
my ($File1,$File2)= @ARGV;

open INFILE1,"<$File1";
open INFILE2,"<$File2";

Here I am forcing the user to input to file names, however, in this case in a read mode.
In two files are not entered it will warn the user and will exit.
on command line, i am giving the complete file name.

This page is a thread posted to the opentalk forum at and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2018: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01225 708225 • FAX: 01225 793803 • EMAIL: • WEB: • SKYPE: wellho