my @elf_files = system("ls"); #or backtiks
Your code doesn't do what you think it does. See Why can't I get the output of a command with system()?. Tutorials->Getting Started with Perl/Basic debugging checklist. Basic debugging could have simply been printing the values before you used them. In the chatterbox Corion provided you with a solution reporting the command actually being run on failure.
Adding:
use strict; use warnings;
generates:
Use of uninitialized value in concatenation (.) or string at ./derp.pl + line 8. readelf: Warning: Nothing to do.
Rather than just:
readelf: Warning: Nothing to do.
You code doesn't cater for all use cases, e.g. if there's a sub directory:
readelf: Error: 'ffmpeg_sources' is not an ordinary file
You should consider not shelling out and just using perl to handle this, opendir, readdir, grep, or modules like Path::Tiny which provide simpler ways of doing this.
Update: for completeness, the only line of code offered in the chatterbox was:
system("readelf -sW $var | awk '{print \$NF}'");In reply to Re: system call error
by marto
in thread system call error
by testing_account
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |