diff --git a/scripts/science/lint-all-sdks.sh b/scripts/science/lint-all-sdks.sh
index 94cc1ef..e8a69a4 100755
--- a/scripts/science/lint-all-sdks.sh
+++ b/scripts/science/lint-all-sdks.sh
@@ -88,7 +88,21 @@ fi
# Perl SDKs
echo "Perl SDKs:"
if command -v perl &>/dev/null; then
- lint_sdk "perl-sync" "perl -c '$CLIENTS_DIR/perl/sync/src/un.pl'" "$CLIENTS_DIR/perl/sync/src/un.pl"
+ # perl -c loads modules which may not be installed, so check for missing module errors
+ PERL_OUTPUT=$(perl -c "$CLIENTS_DIR/perl/sync/src/un.pl" 2>&1)
+ PERL_EXIT=$?
+ if [[ $PERL_EXIT -eq 0 ]]; then
+ echo " [PASS] perl-sync"
+ PASSED=$((PASSED + 1))
+ DETAILS="$DETAILS\n "
+ elif echo "$PERL_OUTPUT" | grep -q "Can't locate"; then
+ echo " [SKIP] perl-sync - missing Perl modules (LWP::UserAgent, etc.)"
+ else
+ echo " [FAIL] perl-sync"
+ echo " $PERL_OUTPUT" | head -3
+ FAILED=$((FAILED + 1))
+ DETAILS="$DETAILS\n $PERL_OUTPUT"
+ fi
else
echo " [SKIP] Perl not installed"
fi