Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I recently upgraded a 32-bit Debian server to 64-bit by re-installing, and copying my data into place.

After this I have a perl script that repeats the following, and is segfaulting on the tell line:

tell(FIN, $ps);

I don't speak perl, so I'm not sure exactly what is going on here. I can get the script to run (apparently successfully) by commenting every occurrence of tell, but this is obviously not the best solution.

I suspect that tell is calling a 32-bit binary or something, and that is the cause of the segfault - but I don't know.

Can someone explain what tell does, and if it is indeed a separate binary, what package it belongs to (or how it is installed ie. cpan)?

Or perhaps I am on the wrong track?

share|improve this question

According to the Perl docs at, tell has only one parameter and returns the current position. Your code has two parameters. Try this instead:

$ps = tell(FIN);

There should also be some error checking in case tell returns -1, which indicates an error.

share|improve this answer
but he's just seek'd to $ps.. so that seems a waste of time? Think we need more context. What's the script? What is it supposed to do? Are you able to post it someplace? – Tom Newton May 8 '10 at 13:56

It is a built-in function, but a segfault is a pretty harsh way for a perl script to die (this has never happened to me), so I have no clue what could be the cause.

share|improve this answer

To answer your direct question, tell returns the current position of a filehandle.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.