in reply to How do I assign a variable to the file content?

Update: This post contains some inaccuracies, which Tye points out in a reply below. Read both posts.

To me, this really sounds like you want to accomplish several steps :

  1. Read $thenumber from a file.
  2. Print $thenumber
  3. Increment $thenumber
  4. Write the new value of $thenumber back to the file
And it seems like you want to do this for a web counter CGI program.

The solution is available in the form of the File::CounterFile module. This maintains a counter file which does the counting for you.

If you think rolling your own version is the better solution, keep the following problems in mind :

Update: On rereading your question, I haven't answered your actual questions. Your code

open(COUNTTHIS, "< $counttext") or die "I can't open counttext: $!\n"; print(<COUNTTHIS>);
opens the file with the name contained in $counttext and prints the first line of it. The next line in your code,
$thenumber = <COUNTTHIS>; #I thought something like this, but no
reads the second line from the file COUNTTHIS, and stores it in $thenumber. What you propably wanted to do was to read a single line from COUNTTHIS, print it, and store it in $thenumber, like this :
print (<COUNTTHIS>); $thenumber = $_; # or, alternatively, like this : $thenumber = <COUNTTHIS>; print $thenumber;

Replies are listed 'Best First'.
RE: Answer: How do I assign a variable to the file content?
by tye (Sage) on Sep 25, 2000 at 21:26 UTC

    A couple of notes:

    print( <COUNTTHIS> );
    prints the entire contents of the open file since <> in an array context reads all remaining lines.

    print (<COUNTTHIS>); $thenumber = $_;
    The first line above doesn't set $_ like while(<COUNTTHIS>) does. So the second line doesn't leave $thenumber set properly.

    $thenumber = <COUNTTHIS>; print $thenumber;
    This version fixes all of these problems.

            - tye (but my friends call me "Tye")