<?xml version='1.0'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
	<title><![CDATA[BOL: Perl subroutine to read and write files]]></title>
	<link>https://bioinformaticsonline.com/snippets/view/28193/perl-subroutine-to-read-and-write-files?</link>
	<atom:link href="https://bioinformaticsonline.com/snippets/view/28193/perl-subroutine-to-read-and-write-files?" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/snippets/view/28193/perl-subroutine-to-read-and-write-files</guid>
	<pubDate>Thu, 30 Jun 2016 16:48:55 -0500</pubDate>
	<link>https://bioinformaticsonline.com/snippets/view/28193/perl-subroutine-to-read-and-write-files</link>
	<title><![CDATA[Perl subroutine to read and write files]]></title>
	<description><![CDATA[<code># Input output (InOut) the file
# usage:
# @array  = InOut(&#039;read&#039;,$file)
# $string = InOut(&#039;read&#039;,$file)
# InOut(&#039;write&#039;,$file,\$string)
# InOut(&#039;write&#039;,$file,\@array)
#$string = &quot;YO!&quot;;
#InOut(&#039;write&#039;,&#039;file.txt&#039;,\$string);

sub InOut {
my($bit,$file,$data) = @_;

if($bit eq &#039;read&#039;){
    open InOut,&quot;&lt; $file&quot; or die &quot;Cannot open $file for input: $!\n&quot;;
    my @file = &lt;InOut&gt;;
    close InOut;
    return wantarray ? @file :  join &#039;&#039;, @file;
    }
if($bit eq &#039;write&#039;){
    open  InOut,&quot;&gt; $file&quot; or die &quot;Cannot open $file for output: $!\n&quot;;
    print InOut  ref $data eq &#039;ARRAY&#039; ? @$data : ref $data eq &quot;SCALAR&quot;? $$data : &#039;&#039;;
    close InOut;
    }
}</code>]]></description>
	<dc:creator>Neel</dc:creator>
</item>

</channel>
</rss>