2014-02-18 8 views
0
$i = system(bc 110^151%14351); 
print($i); 

Привет всем, Я пытаюсь использовать системный вызов для использования калькулятора, установленного на моей машине Linux. Имя калькулятора - GNU bc, для базового калькулятора. В принципе, это простой способ вычисления уравнений. Я могу легко запустить его из терминала, просто набрав bc, а затем функцию, которую я хочу приравнять, в этом случае 110 поднял до 151, модифицированный 14351. Проблема в том, что я не слишком много знаю о perl, и я продолжаю получать это error Невозможно вызвать метод «bc» без указания пакета или объекта при попытке написать perl-скрипт для его автоматизации. Как я могу назвать системный вызов в Perl, или мне разрешено это делать? БлагодаряСистемные вызовы в Perl

+0

'perldoc -f system' – toolic

+0

Термин« системный вызов »обычно относится к вызову в ядро ​​ОС, например' read', 'write' или' ioctl'. Вызов функции 'system', смутно, не является« системным вызовом ». –

+1

Зачем использовать 'system' и' bc', если вы можете просто вычислить это на Perl? Вы забыли поместить котировки вокруг своего системного вызова, и вы должны использовать обратные ссылки или 'qx()', если хотите захватить вывод. – TLP

ответ

1

Вы используете как system() функцию в Perl и bc команду

Вы можете получить bc делать то, что вы хотите из командной строки, как это:

$ echo '110^151%14351' | bc 
7355 

system функция Perl возвращает номер содержащую информацию о статусе завершения вызываемой команды; вместо этого вы хотите получить команду.

Чтобы вызвать это с Perl, это должно работать:

chomp($i = `echo '110^151%14351' | bc`) 

chomp необходима, потому что кавычку Perl сохранить символ новой строки с выхода команды.

Но вы можете сделать это непосредственно в Perl, используя пакет Math::BigInt. Тип

perldoc Math::BigInt 

в вашей командной строке для получения дополнительной информации.

+0

Спасибо, что многому научил меня различным вызовам. – wheatfairies

+0

В чем разница между '' и ''? – wheatfairies

+0

@wheatfairies: 'perldoc perlop' и поиск« котировочных и котировочных операторов ». –

Смежные вопросы