A quick google brings up this, is this the "sbatch" / SLURM you're talking about? https://computing.llnl.gov/linux/slurm/sbatch.html
If that's the case, and if my understanding from a quick skim is correct, then this isn't a plain bash script! There seems to be some preprocessing being done that reads the #SBATCH lines - as has already been noted, lines beginning with # are just comments to bash.
You'll either need to find a monk who's worked with this system before, or give everyone else a quick overview of how this system works.
I will still venture two guesses as to how this might still work with Perl. First, perhaps the system understands more than bash scripts. # lines are just comments to Perl too, so maybe this could work?
#!/usr/bin/perl
#SBATCH -A 1234
#SBATCH -t 2-00:00
#SBATCH -n 24
use warnings;
use strict;
system("module add gromacs")==0
or warn "Warning: module add failed, code $?";
system("srun resp.com")==0
or warn "Warning: srun failed, code $?";
(This requires "module" and "srun" to be actual commands in your PATH, and not some directives that only sbatch understands.)
Or, even though this isn't exactly a "conversion to Perl", it still gives some control to Perl - this uses IPC::Run3 to feed the "script" to sbatch via STDIN.
#!/usr/bin/perl
use warnings;
use strict;
use IPC::Run3 'run3';
my $script = <<'END_SCRIPT';
#!/bin/bash
#SBATCH -A 1234
#SBATCH -t 2-00:00
#SBATCH -n 24
module add gromacs
srun resp.com
END_SCRIPT
run3 ["sbatch"], \$script;
Even though that's really just a simple wrapper, it still gives you some of the power of Perl, such as being able to generate the script dynamically or do advanced things with STDOUT and STDERR.
I want to convert it to Perl it because I will add on it the other parts after it works.
Sorry, I don't understand, could you explain a bit more?
|