Se o seu programa não tem como pegar um nome de arquivo de entrada, você provavelmente desejará usar o shell dentro de cada iteração de estatísticas do perf. Eu deixaria cair tudo que você quer em um pequeno script de shell:
test-prgrm.sh:
#!/bin/sh
prgrm < inp.data
depois, execute com:
perf stat --repeat 50 ./test-prgrm.sh
Mas você pode fazê-lo mesmo sem o arquivo de script de shell intermediário usando sh -c:
perf stat --repeat 50 sh -c 'prgrm < inp.data'
perf por padrão mantém os contadores para qualquer filho do processo que ele invoca. Você pode obter algumas amostras dentro da execução do shell, mas presumivelmente é uma pequena sobrecarga em comparação com a execução do seu programa.